在 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?
});
我有一个相当简单的快速服务器,旨在获取外部客户端数据并通过 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?
});