NodeJS Array Filter не получает свойство Includes после помещения объекта в массив - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь создать службы API REST для чтения данных из Excel. Но я не могу использовать include или indexOf свойство Array Filter , которое содержит данные из Excel. Он показывает TypeError: Невозможно прочитать свойство 'includes' со значением NULL . Я пытался использовать обещание, но не сработало. Пожалуйста, помогите мне.

var express = require('express');
var http = require('http');
var app = express();

function DeliveryData(Carrier, REF, PRO, ETA, DEL, NAME) {
    this.Carrier = Carrier;
    this.REF = REF;
    this.PRO = PRO;
    this.ETA = ETA;
    this.DEL = DEL;
    this.NAME = NAME;
};

var Excel = require('exceljs');
var workbook = new Excel.Workbook();
var DeliveryRowData = [];

workbook.xlsx.readFile('DeliveryData.xlsx').then(function () {
    var worksheet = workbook.getWorksheet('DeliveryData');
    worksheet.eachRow({
        includeEmpty: false
    }, function (row, rowNumber) {
        DeliveryRowData.push(new DeliveryData(
            worksheet.getRow(rowNumber).getCell(1).value,
            worksheet.getRow(rowNumber).getCell(2).value,
            worksheet.getRow(rowNumber).getCell(3).value,
            worksheet.getRow(rowNumber).getCell(4).value,
            worksheet.getRow(rowNumber).getCell(5).value,
            worksheet.getRow(rowNumber).getCell(6).value
        ));
    });
});

app.get('/dlv/:id', (req, res) => {
    var aaa = [];
    var output = '';
    console.log(req.params.id);
    var results = JSON.parse(req.params.id);
    results.forEach(element => {
       output = DeliveryRowData.filter(item => item.REF.includes(element));
        aaa.push(output);
        console.log(output);
        console.log(element);
    });
    res.json(aaa);
});

var server = http.createServer(app);
var port = process.env.PORT || 989;
server.listen(port);
...