在 Nodejs 中从 Express 中提取 POST 请求数据

Extracting POST request data from Express in Nodejs

我有一个相当简单的快速服务器,旨在获取外部客户端数据并通过 mqtt 将其发布到网关。它与硬编码变量完美配合,但我无法弄清楚如何从 POST 请求中提取实际数据,如下所示(它可以很好地打印到控制台):

const postData = app.post('/send-data', function (req, res) {
    console.log('connected', req.body);
    res.status(200).json(req.body)
}); 

我需要从中获取 req.body 数据并将其放入将数据发布到主题的以下代码中:

client.on('connect', function () {
    console.log('connected!');
    client.publish('iot-2/type/wtlType/id/channel100/evt/event/fmt/json', publishData);
    client.end();
});

publishData 将只是字符串化的 json 响应。

如果有帮助,这是创建服务器代码:

https.createServer(options, app).listen(30002, () => {
    console.log('Listening')
});

如果我没理解错的话,你的问题是关于获取客户端发布的req.body的逻辑。如果是这样,那么这样的事情应该有效:

let connected = false;

client.on('connect', function () {
    console.log('connected!');
    connected = true;
});

const postData = app.post('/send-data', function (req, res) {
    console.log('connected', req.body);
    res.status(200).json(req.body)
    client.publish('iot-2/type/wtlType/id/channel100/evt/event/fmt/json', JSON.stringify(req.body));
    client.end(); // are you sure you want this? can there not be more messages to broadcast?
});