0

I reading a local json as require and exporting the reading function

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;

 }
}

I export the the reading function in my routes file to use it as web service

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

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

});

I need another way to read the JSON file I tried use this

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

But I can't return my data array inside fs.readFile method

1 Answers1

0

You will have to parse the data and also use synchronous function or handle async correctly.

Note: better use path module also rather having relative path.

let data = JSON.parse(fs.readFileSync(path.join(__dirname, 'app', 'JSONFiles','customerSatisfaction.json'), 'utf8'));
AZ_
  • 3,094
  • 1
  • 9
  • 19