当前位置: 首页 > 面试题库 >

Node.js / Express表单后req.body无法正常工作

充浩波
2023-03-14
问题内容

我正在使用express,无法从bodyParser获取表单数据。无论我做什么,它总是会变成一个空对象。这是我明确生成的app.js代码(我唯一添加的是底部的app.post路由):

var express = require('express');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
});

app.configure('production', function(){
    app.use(express.errorHandler()); 
});

// Routes

app.get('/', function(req, res){
    res.sendfile('./public/index.html');
});

app.post('/', function(req, res){
    console.log(req.body);
    res.sendfile('./public/index.html');
});

app.listen(3010);

这是我的HTML表单:

<!doctype html>
<html>
  <body>
<form id="myform" action="/" method="post" enctype="application/x-www-form-urlencoded">
  <input type="text" id="mytext" />
  <input type="submit" id="mysubmit" />
</form>
  </body>
</html>

当我提交表单时,req.body是一个空对象{}

值得注意的是,即使我从表单标签中删除了enctype属性,也会发生这种情况

…我有什么地方想念/做错了吗?

我正在使用节点v0.4.11并表达v2.4.6


问题答案:
<form id="myform" action="/" method="post" enctype="application/x-www-form-urlencoded">
  <input type="text" name="I_appear_in_req_body" id="mytext" />
  <input type="submit" id="mysubmit" />
</form>

HTTP帖子的主体是带有name属性的所有表单控件的键/值哈希,值是控件的值。

您需要为所有输入提供名称。



 类似资料:
  • 问题内容: 我正在运行pm2: 问题是,当我更新根文件夹中的app.js时,它似乎并没有自动重启节点。有任何想法吗? 问题答案: 找出解决方案: 将其放在项目的根目录下,然后按以下方式运行pm2:

  • 问题内容: 使用express 3.1.0,我有一个非常简单的形式: 并在app.js中: 尝试发布此表单时,我得到: 并在控制台中: 我在这里想念什么? 问题答案: 您的示例对我有用。我删除了对用户,用户和路由的引用,以便可以运行它,并且HTTP POST已接收并正确显示在控制台中。 我怀疑该错误是在您的User.addUser()代码中。

  • 问题内容: 我在Java中的框架上附加了一个侦听器,当我按任意键时都可以检测到按键,但是发生了一件奇怪的事。我的游戏是扫雷游戏,我有一个重新启动按钮,基本上可以清除木板并消除它。奇怪的是,当我用鼠标单击按钮时,一切都可以很好地清除,并且板子仍然保留,但键侦听器停止工作。即使是陌生人,我也有一个jmenuitem,它基本上会自动单击按钮。所以就像restartbutton.doclick() 如果我

  • 问题内容: 我有以下表格,提交后结果为空这是我的HTML: 这是我的(一部分): 该工作正常。我得到一个空对象。 问题答案: 您以HTML POST的身份提交,这意味着您正在使用。 这意味着您需要添加,这样express可以解析该请求并将其放入

  • 问题内容: 我正在练习MVC样式编程。我在一个文件中有一个Mastermind游戏,工作正常(也许除了“检查”按钮在启动时不可见这一事实之外)。 http://paste.pocoo.org/show/226726/ 但是,当我将其重写为模型,视图,控制器文件时,以及单击空的Pin(应进行更新,并用新颜色重新粉刷)时,就会发生这种情况。有人可以在这里看到任何问题吗?我试过将repaint()放在不

  • 问题内容: 我仍然一遍又一遍地收到此错误:。我已经在Internet上搜索了一个解决方案,但没有任何效果,肯定是一个小细节,因为我不熟悉JAvaFX,这是我的第一个HelloWorld应用程序。无论如何,这是我正在使用的代码: sample.fxml: 还有 SampleController.java 任何帮助,将不胜感激。 问题答案: 找到了问题。它是ActionEvent类,在import部分