gpt4 book ai didi

Node.js 通过表单提交将值从 View 传递到 Controller

转载 作者:太空宇宙 更新时间:2023-11-04 02:31:25 25 4
gpt4 key购买 nike

当我提交表单时,我无法从 req.body 中的 Controller 访问隐藏字段的值。但是,如果我将其更改为发布,我就可以。

查看

<form action="chat" method="get">
<input type="hidden" name="user2" value="Bob">
<input type="submit" value="Message" action="welcome">
</form>

Controller

getChat : function(req, res) {
Message.getAllChatMessages(req.user.local.name, req.query.user2, function(err, messages, target) {
if (err){
return next(err);
}
else {
res.render("chat", {
messages:messages,
title:"Private Chat",
target:req.query.user2});
}
});
},

routes.js

app.get("/chat", wall_controller.getChat);

最佳答案

您似乎误解了 GET 方法的工作原理。

GET 使用查询字符串,并且隐藏输入无法创建查询字符串。如果您想使用隐藏输入,那么您必须使用POST方法。

我建议您使用POST,但如果您确实想使用GET。这个简单的修复应该有效:

// this should simply be a link
<form action="/chat?user2=Bob" method="get">
<input type="submit" value="Message" action="welcome">
</form>

然后您可以通过以下方式访问参数:

req.param('user2')

渲染:

res.render("chat", {
messages : messages,
title : "Private Chat",
target : req.param('user2')
});

关于Node.js 通过表单提交将值从 View 传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26383382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com