我遇到了nodejs和express的问题,我实际上试图从视图中获取输入的值" inscription.ejs"但是当我质疑对象" req"他返回空值。
项目结构:
public
server.js
在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(名称)
没有结果。
答案 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