首页 > 解决方案 > Node.js Express Post 请求正文为空

问题描述

嗨,我一直在处理我的 Express 服务器的问题。关于这个问题有很多 Stack Overflow 帖子,但我一直找不到适合我的答案。收到 POST 请求时,我只在下面的代码中获取request.body的{} :

const bodyParser = require('body-parser');
const app = express();
const User = require('./models/users');
const port = process.env.PORT || 3000;

app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json()); // support json encoded bodies

//Basic routes
app.post('/signup', async (request,response)=>{
    //const newUser = new User(queryObject);
    console.log("in post");
    console.log(request.body);
    response.end();
});


//Binding to a port
app.listen(port, ()=>{
    console.log('Express server started at port 3000');
});

这是我发送 POST 请求的地方:

const xhr = new XMLHttpRequest();
            xhr.addEventListener('load', () => {
                console.log(xhr.response);
            });
            xhr.open('POST', 'http://localhost:3000/signup', false);
            xhr.send(JSON.stringify({ hello : "WORLD" }));

我有什么遗漏或做错了吗?谢谢你。

标签: node.jsexpress

解决方案


Yoy 没有向客户端发送任何内容,因此将您的 json 对象传递给 res.end() 或使用此 res.json({"foo": "bar"});


推荐阅读