Ошибка ExpressJs POST: Ошибка типа: не удается прочитать свойство 'title' из неопределенного - PullRequest
4 голосов
/ 19 февраля 2012

Я много пытался понять, почему возникает эта ошибка:

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 d это выше, но это всегда терпит неудачу. Я попробовал это на версиях 2.5.8 и 2.5.8 (думая, что это может быть проблемой), но это не удалось на обеих версиях. Я что-то упускаю?

1 Ответ

12 голосов
/ 19 февраля 2012

Мои догадки, попробуйте переместить оператор app.configure перед вашими app.get и app.post.Промежуточное программное обеспечение bodyParser не вызывается.Кроме того, для безопасности добавьте enctype к форме, не обязательно, но независимо от: application/x-www-form-urlencoded.

Дайте мне знать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...