gpt4 book ai didi

node.js - 如何使用 express js 获取 post 请求?

转载 作者:搜寻专家 更新时间:2023-11-01 00:45:09 27 4
gpt4 key购买 nike

我试图在我编写的一个小服务中获取 post 变量,但似乎无法从我的 app.post 方法中的请求变量中获取它。我相信这是我处理请求的某种方式。我是否必须采取其他步骤来处理请求?我也尝试过使用 express.bodyParser() 但我收到一条错误消息,指出这已被弃用。以下是我的小 node.js 文件:

        var express = require('express');
var app = express();
app.use(express.json());
// posting method : curl -X POST http://localhost:8080/post-page -d name=ArrowKneeous
// to look at the req I found it better to start using:
// nohup node testPost.js > output.log &
app.post('/post-page',function(req,res){
var name= req.body.name;
//undefined
console.log('name is :' + name);
//object
console.log('req is: '+req);
//object
console.log('req.body is: ' +req.body);
//undefined
console.log('req.body.name is: '+req.body.name);
//undefined
console.log('req.params[0]: '+req.params[0]);
//undefined
console.log('req.query.name is: '+req.query.name);
//empty brackets
console.dir(req.body);
//huge
console.dir(req);
//got stuff is replied to the curl command
res.send('got stuff');
});
app.listen(8080);

最佳答案

你有

app.use(express.json());

处理一个 JSON 帖子,但正在发布标准 URL 编码的表单数据。

-d name=ArrowKneeous

您要么需要发布 JSON

-d '{"name": "ArrowKneeous"}' -H "Content-Type: application/json"

或者您需要告诉 express 也接受 URL 编码的 POST 数据。

app.use(express.urlencoded());

编辑

这适用于 Express 3.x。它应该与 4.x 几乎相同,但是您需要加载 body-parser 模块:

var bodyParser = require('body-parser');

app.use(bodyParser.json());
// OR
app.use(bodyParser.urlencoded());

关于node.js - 如何使用 express js 获取 post 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21003975/

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