Express req.body undefined,bodyParser之后的路由不起作用

时间:2014-07-25 04:56:45

标签: node.js express

我不知道为什么在编程中有很多该死的错误和问题,即使是基本任务。这是我的代码,无论我做出多少古怪的位置变化,它都拒绝工作。

var express = require('express');
var path = require('path');
var favicon = require('static-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var app = express();
var store = require('./routes/store');

app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.get('/', function(req, res){
  res.render('home', {title: 'Ninja Store'})
});

app.post('/', function(req, res) {
    username = req.body.username || 'Anonymous';
    req.session.username = username;
    res.redirect('/');
});

一直在说

Cannot set property 'username' of undefined

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:2)

我认为这里req.session未定义,而不是req.body。因为它的属性设置错误。

如果req.body未定义,则会抛出属性读取错误

Cannot read property 'username' of undefined.

您应该使用express-session中间件来克服此问题。我希望这有帮助。

答案 1 :(得分:0)

我已经回答了同样的问题check it你应该使用:app.use(express.cookieSession());