【问题标题】:Input value "undefined" Node.js输入值“未定义”Node.js
【发布时间】:2015-04-28 19:55:03
【问题描述】:

我在使用 nodejs 和 express 时遇到了一些问题,我实际上是在尝试从视图“inscription.ejs”中获取输入值,但是当我质疑对象“req”时,他返回 null 值。

项目结构:

  • 应用程序
    -- 控制器
    -------- home.js
    ------- user.js
    -------- book.js
    -- 模型
    ------- modele.js
    -- 意见
    -------- 一些意见 ejs
  • 配置
    -- 路由.js
  • 公开

  • server.js

  • package.json
  • 节点模块

在 server.js 中,我只需调用 routes.js 以使用以下行加载路由:

require('./config/routes')(app)

在 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(name)

没有结果。

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    检查 server.js 文件中 body-parser 中间件的配置

    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 
    

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      • 2013-09-26
      • 1970-01-01
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多