我有一个简单的表单,通过Express向我的Node.JS服务器发送POST数据。这就是表单。
<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
这是我在服务器上处理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
是由名字和值组成的
添加 name="search"
在你的搜索框上再试一次。
你还必须使用 expressconnect.bodyParser() 中间件,谢谢 Nick Mitchinson!
本文来自投稿,不代表实战宝典立场,如若转载,请注明出处:https://www.shizhanbaodian.com/217.html