Node.js Nodejs Express-带JSON文件的Post请求
这是我的代码:Node.js Nodejs Express-带JSON文件的Post请求,node.js,Node.js,这是我的代码: 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); con
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获取数据的部分。您不应该在回调中创建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);
}
});
首先,app.post('/api/process',function(){})
是服务器端的一个处理程序,用于处理传入的post
请求
要在服务器端节点应用程序上进行POST
调用,可以使用npm
app.post
只是在/api/post
中添加了一个处理程序,客户端可能会调用该处理程序,您确切的意思是什么根本不起作用?@sureshraprajapati-当我尝试console.log假定的结果时,我一无所获。也就是说,我不认为它甚至在应用程序之后继续进行。post@SureshPrajapati-那么,如果app.post不能以这种方式工作,我如何将从readFile获得的数据发送到假定的API函数呢。但问题仍然是如何使用数据(来自readFile的响应)作为对API(/API/process)的请求?现在该进程是一个不同的函数,您可以传递任何您想要的。这不是一个100%干净的解决方案,因为我必须修复一些错误,尽管此站点中的答案不应该总是匙形反馈。然而,这确实奏效了!谢谢
'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
});