【发布时间】:2013-02-25 16:37:09
【问题描述】:
我有一个简单的表单,它使用 Express 将 POST 数据发送到我的 Node.JS 服务器。这是表格:
<form method="post" action="/sendmessage">
<div class="ui-widget">
<input type="text" id="search" data-provide="typeahead" placeholder="Search..." />
</div>
<textarea id="message"></textarea>
</form>
ui-widget 和输入与typehead 相关,这是一个来自 Twitter 的自动完成库。
这就是我在服务器中处理 POST 请求的方式:
app.post('/sendmessage', function (req, res){
console.log(req.body);
usermodel.findOne({ user: req.session.user }, function (err, auser){
if (err) throw err;
usermodel.findOne({ user: req.body.search }, function (err, user){
if (err) throw err;
var message = new messagemodel({
fromuser: auser._id,
touser: user._id,
message: req.body.message,
status: false
});
message.save(function (err){
if (err) throw err;
res.redirect('/messages')
})
});
});
});
控制台显示“{}”,然后出现 req.body.search 错误,因为未定义 search。我不知道这里发生了什么,这不是与typehead 输入相关的问题。这个问题有什么解决办法...?
感谢您的提前!
【问题讨论】:
-
我会在任何地方添加控制台检查以检查
req.body输出的内容,如果req.body为空,那么我会查看您传递给 @987654329 的方式/内容有什么问题@ -
尝试将
name="search"属性添加到您的输入字段。
标签: forms node.js post express