这是我的代码:
var fs = require('fs');
fs.readFile('./public/samp.json', "utf8", function readFile(err, data) {
if(err) {
throw err;
}
else {
app.post('/api/process', function(data, res) {
sessCntrlr.procedure(pool, res, req);
console.log(res);
});
}
});
我的目标是从json文件(“ ./public/samp.json”)中获取信息,然后使用该信息将请求发布到API。我知道并了解应该发送请求的应该是客户端,但是我正在尝试确定是否可以通过json文件发布请求。
有什么想法吗?我上面的代码根本不起作用,除了我使用fs.readFile获取数据的那部分。
答案 0 :(得分:1)
您不应在回调内部创建API。如果要使用,请创建其他函数,并将其用于文件和API。
var fs = require('fs');
var process = (pool, res, req) => {
/* Do something */
sessCntrlr.procedure(pool, res, req);
}
app.post('/api/process', function (req, res) {
/* Do something and get params for process */
process(pool, res, req);
});
fs.readFile('./public/samp.json', "utf8", function readFile(err, data) {
if (err) {
throw err;
} else {
/* Do something and get params for process */
process(pool, res, req);
}
});
答案 1 :(得分:0)
首先,app.post('/api/process',function(){})
是服务器端的处理程序,用于处理传入的POST
请求。
要在服务器端节点应用上拨打POST
,可以使用request npm。
'use strict';
let fs = require('fs');
let request = require('request');
let jsonData = fs.readFileSync('./public/samp.json', 'utf8');
request({
method: 'POST',
url: '/api/process',
body: jsonData, //information from json
headers: {
'User-Agent': 'Request-Promise'
},
json: true
}, function (error, response, body) {
if (error) {
console.log('error', error);
}
console.log('body', body);
sessCntrlr.procedure(pool, res, req); //your code
});