gpt4 book ai didi

node.js - 从请求中获取 POST 数据

转载 作者:搜寻专家 更新时间:2023-10-31 23:45:28 27 4
gpt4 key购买 nike

我需要从我将收到的请求中提取 POST 数据(使用 Slack Slash 命令,我基本上想检查命令被调用的 channel 并仅在某些特定 channel 中执行它)。

我是 NodeJs 的新手,所以我通常对请求之类的东西很迷茫,欢迎提供精确的帮助。

(小细节:在尝试不同的方法时,我注意到如果我从 Slack 请求说 response.js,Slack 不会显示我在 shell 中看到的相同日志,而是显示聊天中的整个代码。我做错了什么吗?)

编辑:我正在使用 Express。

编辑 2:添加了 request.jsresponse.js

请求.js :

var request = require('request');
var requestData = {
"token" : "XXXXXXXX",
"team_id" : "XXXXX"
}
var options = {
url : 'http://XX.XXX.XX.XX/request/response.js',
method : 'POST',
json : requestData
}

request(options, function(err, res, body) {
console.log("requesting");
if (err)
console.log("error, mate");
else
console.log("no worries");
})

response.js :

const express = require('express')
const app = express()

var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/request/response.js', function (req, res) {
var post_body = req.body;
console.log(post_body);
})

app.listen(3000, function() {
console.log("listening");
})

最佳答案

要读取 POST 数据,您需要body-parser。首先使用命令行安装它:

npm install body-parser --save

然后,将其包含在主 app.js 文件中:

var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

最后要在 POST 路由中使用它,您可以使用 req.body :

app.post('/api/postRoute', function(req, res) {
var post_body = req.body;
// Return the POST message
res.send(post_body);
});

您的完整 response.js 应如下所示:

const express = require('express')
const app = express()
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/api/postRoute', function(req, res) {
var post_body = req.body;
// Return the POST message
res.send(post_body);
});

app.listen(3000, function () {
console.log('Example app listening on port 3000!')
});

然后你从命令行启动它:

node response.js

然后您向 URL 发送请求: http://localhost:3000/api/postRoute

关于node.js - 从请求中获取 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45921355/

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