Expressjs POST错误:TypeError:无法读取未定义的属性“title”

时间:2012-02-19 09:56:20

标签: node.js post express

我试了很多想弄清楚为什么会引起这个错误:

Configuring
Listening on 2000
TypeError: Cannot read property 'title' of undefined
   at /home/abdulsattar/learning/node/express/index.js:9:20

index.js:

var express = require("express"),
    app = express.createServer();

app.get("/", function(req, res) {
  res.send('<form action="/new" method="post"><input type="text" name="title" /><input type="submit" /></form>');
});

app.post("/new", function(req, res) {
  res.send(req.body.title);
});

app.configure(function() {
  console.log("Configuring");
  app.use(express.bodyParser());
});

var port = process.env.PORT || 2000;

app.listen(port, function() {
  console.log("Listening on " + port);
});

我已经读到明确需要bodyParser()。我use以上,但总是失败。我在版本2.5.82.5.8上尝试过(认为这可能是问题),但两个版本都失败了。我有什么遗失的吗?

1 个答案:

答案 0 :(得分:12)

我的预感,请尝试在app.get和app.post之前移动app.configure语句。 bodyParser中间件未被调用。另外,为安全起见,不必将enctype添加到表单中,但无论如何:application/x-www-form-urlencoded

让我知道......