!更新了新问题! Node JS用express读取表单输入
Posted
技术标签:
【中文标题】!更新了新问题! Node JS用express读取表单输入【英文标题】:!updated new issue! Node JS Read form input with express 【发布时间】:2016-10-02 10:21:52 【问题描述】:新问题!
我得到了要显示的网页,并且能够检索和显示用户输入。 但是,我的代码只允许一个用户输入,如果我在 html 中添加另一个输入字段,其余的将是未定义的。 这是更新后的代码,它只会显示姓氏。
/*server.js*/
var express = require('express');
var bodyParser = require('body-parser');
var formHTML = require('./formHTML');
var app = express();
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded( extended: true )); // support encoded bodies
app.get('/', function(req, res)
var html = formHTML.html1;
res.send(html);
);
app.post('/', function(req, res)
var firstName = req.body.firstName;
var lastName = req.body.lastName;
var html = formHTML.html2;
html = html.replace('firstName', firstName);
html = html.replace('lastName', lastName);
res.send(html);
);
app.listen(8080);
/*formHTML.js*/
var html1 = '<form action="/" method="post">' +
'Enter your first name:' +
'<input type="text" name="firstrName" placeholder="..." />' +
'<br>' +
'Enter your last name:' +
'<input type="text" name="lastName" placeholder="..." />' +
'<br>' +
'<button type="submit">Submit</button>' +
'</form>';
var html2 = 'Hello: firstName lastName .<br>' + '<a href="/">Try again.</a>';
exports.html1 = html1;
exports.html2 = html2;
我可以尝试检索两个用户输入吗? 谢谢!
================================================ ============================
我有以下代码,据说打开一个带有一个用户输入字段的网页,并使用 express 获取并发布显示用户的输入。
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser());
app.get('/', function(req, res)
var html = '<form action="/" method="post">' +
'Enter your name:' +
'<input type="text" name="userName" placeholder="..." />' +
'<br>' +
'<button type="submit">Submit</button>' +
'</form>';
res.send(html);
);
app.post('/', function(req, res)
var userName = req.body.userName;
var html = 'Hello: ' + userName + '.<br>' +
'<a href="/">Try again.</a>';
res.send(html);
);
app.listen(80);
但是,我收到以下错误,我无法弄清楚如何让它工作。有人可以给我一个提示吗?谢谢!
Thu, 02 Jun 2016 15:10:23 GMT body-parser deprecated bodyParser: use server.js:20:9 Thu, 02 Jun 上的单个 json/urlencoded 中间件 2016 15:10:23 GMT 正文解析器已弃用未定义扩展:提供 ....\node_modules\body-parser\index.js:105:29
的扩展选项
【问题讨论】:
【参考方案1】:bodyParser()
构造函数已被弃用(详情here),您现在需要使用这些:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded(extended: true;);
extended
设置为 true 时,将使用 qs
库进行解析,设置为 false 时将使用 querystring
。研究两者之间的区别以确定您要使用哪个,我一直使用qs
没有任何问题。
【讨论】:
改成上面的代码后,bodyParser 上又出现一个错误,提示“参数数量无效,预期为 2....” 哦 NVM,我猜这个错误不会影响功能。该程序仍然可以解决错误。【参考方案2】:改变:
app.use(bodyParser());
与:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded(extended: false));
【讨论】:
以上是关于!更新了新问题! Node JS用express读取表单输入的主要内容,如果未能解决你的问题,请参考以下文章
如何使用在 node.js 上的方法和 express 来获取更新信息
如何在node express js上动态更新mysql中的行