【问题标题】:Node.js: GET Request returns 404 Not FoundNode.js:GET 请求返回 404 Not Found
【发布时间】:2015-05-01 13:18:01
【问题描述】:

正在使用 Node.js 和 Express 创建一个 REST API。服务器从 localhost:xxxx 开始,但 localhost:xxxx/bits 返回 404 Not Found 错误。

var express = require('express');
var app = express();

app.get('/bits', function(req, res) {
    console.log("Bits called");
});

app.get('/bits/:id', function(req, res) {
    console.log("Bits ID called");
});

app.listen(xxxx);
console.log('Listening on port xxxx.');

帮助?

【问题讨论】:

  • 由于路由或简单代码没有任何问题,您的服务器似乎很可能实际上并未在您访问的端口上运行或根本没有运行。您是否有机会尝试在您无权运行的低编号端口上运行?
  • 服务器确实在运行。我试过这个:var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(83, 'localhost'); console.log('Server running at http://127.0.0.1:83/'); 它打印了 Hello World。
  • 我刚刚发现这个服务器是为127.0.0.1:83 运行的,但不是为localhost:83 运行的。我的 system32 主机文件有127.0.0.1 localhost。可能是什么原因?
  • 在那台计算机上,在命令窗口中尝试ping -4 localhost,看看它认为 localhost 是什么 IP 地址。
  • 返回相同的,127.0.0.1。

标签: node.js rest express get


【解决方案1】:

我刚刚运行了您的代码,但将 xxxx 替换为端口号。对我来说效果很好。

var express = require('express');
var app = express();

app.get('/bits', function(req, res) {
    res.send([{name:'bit1'}, {name:'bit2'}]);
});

app.get('/bits/:id', function(req, res) {
    res.send({id:req.params.id, name: "The Name", description: "description"});
});

app.listen(8080);
console.log('Listening on port 8080.');

我还运行了一些 curl 命令以显示它可以正常工作。

[09:24 AM] jsloyer@Jeffs-MacBook-Pro [Downloads]>curl http://127.0.0.1:8080/bits
[{"name":"bit1"},{"name":"bit2"}]
[09:25 AM] jsloyer@Jeffs-MacBook-Pro [Downloads]>curl http://127.0.0.1:8080/bits/1
{"id":"1","name":"The Name","description":"description"}
[09:25 AM] jsloyer@Jeffs-MacBook-Pro [Downloads]>

另外here is 一个完整的 Node.js git 项目,包括它的源代码。

您也可以单击下面的按钮来部署它并查看它的运行情况。

【讨论】:

  • xxxx 当然是指端口号。检查可能出现的错误的其他方法?
  • 你运行的是什么版本的node,什么版本的express?
  • Node.js: 0.12.2 Express: 3.20.2
  • 尝试拉下我发布的 git 项目,看看是否可行。我用 express 4.x 发布了这个例子,但没关系,你没有在两个版本之间做任何真正重要的事情。
猜你喜欢
  • 2023-03-05
  • 1970-01-01
  • 2021-02-07
  • 2020-03-16
  • 2023-02-24
  • 2012-08-10
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多