【问题标题】:!updated new issue! Node JS Read form input with express!更新了新问题! Node JS用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

的扩展选项

【问题讨论】:

    标签: node.js


    【解决方案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}));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 2020-11-12
      • 2021-08-22
      • 1970-01-01
      相关资源
      最近更新 更多