简体   繁体   English

Jade和Express.js-req.body。[表单名称]未定义

[英]Jade and Express.js - req.body.[name of form] is undefined

I'm trying to update a database using a drop down form, but req.body.[name of form] is undefined. 我正在尝试使用下拉表单更新数据库,但是req.body。[表单名称]未定义。

req.body in console shows {}. 控制台中的req.body显示{}。

Here is my lev.js: 这是我的lev.js:

router.post('/kundeendring', function(req, res) {
    var test1 = req.body.ansvarlig;
    console.log(test1);

And here is the form in my lev.jade: 这是我的lev.jade中的表格:

form#kunde(method="post", action="kundeendring")
    select (name= "ansvarlig")
        option(value='Kim', selected=kim) Kim 
        option(value='Christer', selected=christer) Christer
        option(value='Hege', selected=hege) Hege
        option(value='Morten', selected=morten) Morten
        option(value='Andre', selected=andre) Andre
    h3= "Lagre"
    button#btnSubmit(type="submit") submit

I also have bodyParser automatically installed using the express generator: 我还使用express生成器自动安装了bodyParser:

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

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

When I click the submit button test1 is 'undefined'. 当我单击提交按钮时,test1为“未定义”。

edit: Fixed a missing parentheses. 编辑:修复了缺少的括号。

edit: This works in lev.jade, but still not able to transfer that to drop down: 编辑:这在lev.jade中有效,但仍无法将其转移到下拉菜单中:

form#formAddUser(name="adduser",method="post",action="kundeendring")
    input#inputUserName(type="text", placeholder="username", name="username")
    input#inputUserEmail(type="text", placeholder="useremail", name="useremail")
    button#btnSubmit(type="submit") submit

It was a simple and stupid white space error. 这是一个简单而愚蠢的空白错误。

The select tag didn't get a name. 选择标签没有名字。

Changing to select(name= "ansvarlig") solved everything. 更改为select(name= "ansvarlig")解决所有问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM