POST请求因Node.js和Express.js而失败

时间:2014-03-08 11:24:09

标签: node.js post express

这里有新的网络开发,来自C的土地,一切都有点新鲜了:)

我正在进行一些快速学习,并坚持让POST请求工作。我在Chrome上使用Advanced Rest Client发送POST请求并收到错误,没有错误编号只是一个简单的“计算机拒绝”。

我的app.js:

var express = require('express')
    , http = require('http');

var app = express();

app.configure(function(){
    app.set('port', process.env.PORT || 3000);
    app.use(express.urlencoded());
    app.use(express.json());
});

app.get("/", function(req, res) {
    res.send("Hello, Express!");
});

app.get("/hi", function(req, res) {
    var message = "Hello :-)";
    res.send(message);
});

app.get("/users/:userId", function(req, res) {
    res.send("<h1>Hello user #" + req.params.userId);
});

app.post("/users", function(req, res) {
    res.send("Creating a new user with name " + req.body.username);
});

http.createServer(app).listen(app.get('port'), function(){
    console.log("Express server listening on port " + app.get('port'));
});

所有其他路线都有效,只是失败的POST。

编辑:另外,我发帖时使用text / html作为内容类型。

我已重新启动服务器,确保文件已保存,重新启动系统等。我猜测问题是解析身体失败。任何帮助都会很棒,欢呼。

1 个答案:

答案 0 :(得分:1)

express.json()不会解析text/html,因此您的路由处理程序中没有req.bodyreq.body.username行会抛出错误。

  

我已重新启动服务器,确保文件已保存,重新启动系统等。我猜测问题是正文解析失败。

不要猜。调试和读取日志(app.use(express.logger('dev')));