输入值"未定义" Node.js的

时间:2015-02-26 12:26:30

标签: node.js express

我遇到了nodejs和express的问题,我实际上试图从视图中获取输入的值" inscription.ejs"但是当我质疑对象" req"他返回空值。

项目结构:

  • app
    - 控制器
    ------- home.js
    ------- user.js
    ------- book.js
    - modele
    ------- modele.js
    - 意见
    -------一些观点ejs
  • 配置
    - routes.js
  • public

  • server.js

  • package.json
  • node-modules

在server.js中我只是调用routes.js来加载这些行的路由:

  

需要(' ./配置/路由&#39)(应用)

在routes.js中,我在控制器文件夹中进行不同的调用,实际上一切正常:

var user = require('../app/controller/user');
var book = require('../app/controller/book');
var home = require('../app/controller/home');

/**
 * Expose
 */

module.exports = function (app) {
    app.get('/home', home.index)
    app.get('/home/inscription', home.inscription)
    app.post('/home/inscription', user.addUser)
}

这是问题,在user.js中:

var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var models = require('../entity/modele')(mongoose);

exports.addUser = function(req, res){
    console.log(req.params);
    res.render('user');
};

当我发送表单时,我会在模板中重定向" user.ejs"但在控制台中输入的值是未定义的。 我试着用:

  

req.body.name
  req.param(名称)

没有结果。

1 个答案:

答案 0 :(得分:0)

检查server.js文件中正文解析器中间件的配置

var express = require('express')
var bodyParser = require('body-parser')

var app = express()

// parse application/x-www-form-urlencoded 
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json 
app.use(bodyParser.json())

app.use(function (req, res) {
  res.setHeader('Content-Type', 'text/plain')
  res.write('you posted:\n')
  res.end(JSON.stringify(req.body, null, 2))
})
 // your route configuration here