gpt4 book ai didi

javascript - 值没有插入到数组中

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:01 25 4
gpt4 key购买 nike

我有一个 NodeJS 应用程序,我在其中一条 route 使用 ExcelJS(由 Express 提供支持)。在下面的代码片段中,一个简单的循环应该从 Excel 文件中读取行,然后将它们插入到数组中。但是,他们似乎没有插入。

router.get('/work', function(req, res, next) {
var posts = [];
var workbook = new Excel.Workbook();
workbook.xlsx.readFile(file).then(function() {
var worksheet = workbook.getWorksheet(1);
worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
console.log(JSON.stringify(row.values));
posts.push(JSON.stringify(row.values));
});
});
res.json(posts);
});

console.log 行工作得很好,因为我可以在记录值时看到控制台中的值。但是,由于某种原因,这些值没有插入到 posts 数组中。有人知道为什么吗?

最佳答案

由于此操作是异步的,因此您需要在读取完 CSV 后发回数组:

router.get('/work', function(req, res, next) {
var posts = [];
var workbook = new Excel.Workbook();
workbook.xlsx.readFile(file).then(function() {
var worksheet = workbook.getWorksheet(1);
worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
console.log(JSON.stringify(row.values));
posts.push(JSON.stringify(row.values));
});
res.json(posts); // moved within the callback to `then`
});
});

之前,在 readFile 返回的 promise 得到解决并允许您使用 CSV 中的值填充它之前,您会立即用空数组终止请求。

关于javascript - 值没有插入到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39068455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com