【问题标题】:NODE.JS - passing pathname using URL.parseNODE.JS - 使用 URL.parse 传递路径名
【发布时间】:2016-01-12 22:05:34
【问题描述】:

在下面的代码中,我正在创建一个 API,我想传递一个路径名并使用 switch 语句检查它以传递 GET、POST 等。

但似乎我做错了什么,因为它似乎没有传递路径名,而是 localhost:8080..

var http = require('http');
var URL = require('URL');

var server = http.createServer(function (req, res) {
    var parsedURL = URL.parse(req.URL, true);

    switch (parsedURL) {
        case '/api/something':
        if (parsedURL.query.id) {
            findProductById(id, req, res);
        }
        else {
            findAll(req, res);
        }
        break;
        default;
        res.end('End of connection');
    }
});
server.listen(8080);
console.log("Running");  

我做错了什么?我是否正确使用了 URL?还是解析时遗漏了什么?

感谢您的帮助!

【问题讨论】:

  • 如果你想要路径名,那不应该是switch(parsedURL.pathname) {吗?
  • req.URL 的值是多少?
  • @JoachimIsaksson - 是的,应该 :) 谢谢!

标签: javascript node.js http url-routing


【解决方案1】:

你的需求应该是这样的:

var URL = require('url');

节点找不到正确的模块,都是小写的。

此外,您的 switch case 中的默认语句使用了不正确的语法。试试:

default: res.end('End of connection');

【讨论】:

  • 这绝对有帮助,因为 nodemon 一直在告诉我找不到 url 模块,我不知道那是什么,显然是那种愚蠢的语法,但它似乎仍然不起作用......
猜你喜欢
  • 1970-01-01
  • 2018-11-19
  • 2012-09-08
  • 1970-01-01
  • 2016-08-11
  • 2019-03-22
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多