我需要从收到的请求中提取 POST 数据(使用 Slack Slash Commands,我基本上想检查调用该命令的通道,并且仅在某些特定通道中执行它)。
我对 NodeJs 比较陌生,所以我通常对请求之类的东西很困惑,欢迎提供精确的帮助。
(小细节:在尝试不同的方法时,我注意到,如果我请求Slack 的response.js,Slack 不会显示我在 shell 中看到的相同日志,而是在聊天中显示整个代码。我在做什么吗?错误的?)
编辑:我正在使用 Express。
编辑2:添加request.js
和response.js
request.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");
})
Run Code Online (Sandbox Code Playgroud)
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");
})
Run Code Online (Sandbox Code Playgroud)
要读取 POST 数据,您需要body-parser。首先使用命令行安装它:
npm install body-parser --save
Run Code Online (Sandbox Code Playgroud)
然后,将其包含在主 app.js 文件中:
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
Run Code Online (Sandbox Code Playgroud)
最后要在POST路由中使用它,您可以使用req.body
:
app.post('/api/postRoute', function(req, res) {
var post_body = req.body;
// Return the POST message
res.send(post_body);
});
Run Code Online (Sandbox Code Playgroud)
你的完整的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!')
});
Run Code Online (Sandbox Code Playgroud)
然后您可以使用以下命令从命令行启动它:
node response.js
Run Code Online (Sandbox Code Playgroud)
然后将请求 POST 到 URL: http://localhost:3000/api/postRoute
归档时间: |
|
查看次数: |
15176 次 |
最近记录: |