繁体   English   中英

Node.js-提交表单不控制表单值

[英]Node.js - submitting form not console the form values

我是node.js的初学者。 我正在尝试使用表单添加“名称”和“部门”。 一旦我单击提交,我会同时安慰“姓名”和“部门”,但我都“都”是“未定义”。

我不知道我在哪里。 有人找出来并帮助我管理姓名和部门吗?

这是我的表格:

<form method="post" role="form" class="form-horizontal" enctype='multipart/form-data'>
        <div class="form-group">
            <label for="name"><input id='name' name='name' placeholder='Enter your name' type="text" ></label>
            <label for="dept"><input id='dept' name='dept' placeholder='Enter your department here' type="text"></label>
            <button type='submit' class="btn btn-default" id='submit'>Submit your Details</button>
        <div>
    </form>

这是我的app.js

var
http     = require('http'),
express  = require('express'),
routes   = require('./routes'),
userList = require('./routes/list'),
path     = require('path'),

app     = express();

app.set('port', process.env.PROT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'static')));


app.get('/', routes.list);
app.get('/addList', userList.addList);
app.post('/addList', function(req, res){
    var name = req.params.name;
    var dept = req.params.dept;

    console.log(name, dept);//getting undefined why?
});

http.createServer(app).listen(app.get('port'), function(){
    console.log('successfuly initiated!');
});

更新了表格和app.js

形成:

<form method="post" role="form" class="form-horizontal" action="/addList">
        <div class="form-group">
            <label for="name"><input id='name' name='name' placeholder='Enter your name' type="text" ></label>
            <label for="dept"><input id='dept' name='dept' placeholder='Enter your department here' type="text"></label>
            <p><input type='submit' class="btn btn-default" id='submit' value='Submit your Details'/></p>
        <div>

app.js

var
http     = require('http'),
express  = require('express'),
routes   = require('./routes'),
userList = require('./routes/list'),
path     = require('path'),

app     = express();

app.set('port', process.env.PROT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');


app.use(app.router); 
app.use(express.static(path.join(__dirname, 'static')));
app.use(express.bodyParser()); //newly added
app.use(express.urlencoded()); //newly added

app.get('/', routes.list);
app.get('/addList', userList.addList);
app.post('/addList', function(req, res){
    var name = req.body.name;
    var dept = req.body.dept;

    console.log(name, dept);

});

http.createServer(app).listen(app.get('port'), function(){
    console.log('successfuly initiated!');
});

您的表单缺少action="/addList"属性

而且由于您使用POST方法进行发布,因此您的值将显示在正文上

var name = req.body.name;
var dept = req.body.dept;

为了使值出现在主体中,请添加此中间件

app.use(express.bodyParser());
app.use(express.urlencoded());

app.use(app.router)应该是您最后调用的东西。

暂无
暂无

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

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