这里有新的网络开发,来自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作为内容类型。
我已重新启动服务器,确保文件已保存,重新启动系统等。我猜测问题是解析身体失败。任何帮助都会很棒,欢呼。
答案 0 :(得分:1)
express.json()
不会解析text/html
,因此您的路由处理程序中没有req.body
,req.body.username
行会抛出错误。
我已重新启动服务器,确保文件已保存,重新启动系统等。我猜测问题是正文解析失败。
不要猜。调试和读取日志(app.use(express.logger('dev'))
);