我有一个包含以下内容的HTML文件:
<form method="post" action="localhost:3000/post">
<input name="user[name]" type="text"/>
<button type="submit">sub</button>
</form>
在我的节点app.js文件中,我写了这一行用于发布:
app.post("/post" ,function(req ,res ){
console.log(req.body.user.name);
res.send(req.body.user.name);
});
但我无法发布这些数据。
搜索后我发现我必须将这些行添加到节点文件中:
var bodyParser = require('body-parser');
app.use(express.bodyParser());
我用“npm install body-parser”安装它。但是发生错误。
我该如何解决这个问题?
答案 0 :(得分:1)
如果您使用快递4,则不再将bodyParser与其捆绑在一起。 所以你必须改变这一行:
app.use(express.bodyParser());
有了这个:
app.use(bodyParser());
您可以在此处找到更多信息和示例:
答案 1 :(得分:1)
FOR SERVER PART
如果您已成功安装body-parser
到npm-install
。
在app.js中添加这些行应该可以正常工作
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
如果发出警告
body-parser deprecated urlencoded: explicitly specify "extended: true" for extended parsing
使用以下
app.use(bodyParser.urlencoded({
extended: true
}));
在您的客户中
在您的HTML中,您说action="localhost:3000/post"
。
我认为这改为
/ post
OR
action =“http:// localhost:3000 / post 如果您向其他服务器发出请求。
答案 2 :(得分:0)
尝试一下这个谎言
要安装sudo尝试,因为我发现安装问题的问题有时没有:
sudo npm install body-parser
然后在你的代码中,如果上面没有失败,那就是这个:
var app = express().use(require('body-parser')());
app.post("/post" ,function(req ,res ){
console.log(req.body.user.name);
res.send(req.body.user.name);
});