Nodejs Express-使用JSON文件发布请求

时间:2018-08-17 08:30:47

标签: 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);
      console.log(res);
    });
  }
});

我的目标是从json文件(“ ./public/samp.json”)中获取信息,然后使用该信息将请求发布到API。我知道并了解应该发送请求的应该是客户端,但是我正在尝试确定是否可以通过json文件发布请求。

有什么想法吗?我上面的代码根本不起作用,除了我使用fs.readFile获取数据的那部分。

2 个答案:

答案 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
});
相关问题