在NodeJS中读取JSON文件的另一种方法

时间:2019-02-19 15:57:47

标签: javascript node.js json routes hapijs

我根据需要读取本地json并导出读取功能

var saborServicioJSON = require("../app/JSONFiles/customerSatisfaction.json");
module.exports = {
loadTableSS: function (payload) {
    var sucursales = JSON.parse(payload.payload.Sucursales);
    var selectedweek = payload.payload.SelectedWeek;
    var selectedyear = payload.payload.SelectedYear;
    var JSONobj;
    var arrayTable = [];
    JSONobj = saborServicioJSON;
    for (let i = 0; i < sucursales.length; i++) {
        const sucursal = sucursales[i].toString();
        $(JSONobj).each(function (index, item) {
            var datadate = new Date(item.date);
            var datayear = datadate.getFullYear();
            if (item.storeID == sucursal && item.week == selectedweek && datayear == selectedyear) {
                arrayTable.push(item);
            }
        });
    }
    return arrayTable;

 }
}

我将阅读功能导出到我的路线文件中,以用作网络服务

const reportsController = require('../private_modules/ReportsController')

server.route({
method: 'POST',
path: '/ssLoadTable',
handler: function (request, reply) {
  var tableData = reportsController.loadTableSS(request);
  reply(tableData);
}

});

我需要另一种方法来读取我尝试使用的JSON文件

    fs.readFile('./app/JSONFiles/customerSatisfaction.json', 'utf8', function (err, data) {});

但是我无法在fs.readFile方法中返回我的数据数组

1 个答案:

答案 0 :(得分:0)

您将不得不解析数据,还必须使用同步功能或正确处理异步。

注意:最好也使用路径模块,而不要使用相对路径。

let data = JSON.parse(fs.readFileSync(path.join(__dirname, 'app', 'JSONFiles','customerSatisfaction.json'), 'utf8'));