首页 文章

!更新了新问题! Node JS使用express读取表单输入

提问于
浏览
1

新问题!

我得到了要显示的网页,并且能够检索并显示用户输入 .
但是,我的代码只允许一个用户输入,如果我在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);

但是,我得到了以下错误,我无法弄清楚如何让它工作 . 有人能给我一个暗示吗?谢谢!

2016年6月2日星期四15:10:23 GMT身体解析器弃用bodyParser:在server.js使用单独的json / urlencoded中间件:20:9星期四,2016年6月2日15:10:23 GMT身体解析器弃用未定义扩展:在.... \ node_modules \ body-parser \ index.js:105:29提供扩展选项

2 回答

  • 3

    bodyParser() 构造函数已被弃用(详情here),您现在需要使用这些:

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

    extended 设置为true时,它将使用 qs 库进行解析,当设置为false时,它将使用 querystring . 研究两者之间的区别来决定你想要使用哪一个,我总是使用 qs 没有任何问题 .

  • 0

    改变:

    app.use(bodyParser());
    

    用:

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

相关问题