我有一個 Node.js AWS Lambda 函式,我正在嘗試從 S3 中的 CSV 檔案中讀取記錄并列印其內容。
下面是我實作相同的代碼,但是我得到 Null 作為輸出。
代碼:
const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const csv = require('csv-parser');
const bucket = 'awslambdabuckets';
const objectkey = 'record.csv';
const params = { Bucket: bucket, Key: objectkey };
const results = [];
exports.handler = async function (event, ctx, callback) {
try {
const file = s3.getObject(params).createReadStream();
file
.pipe(csv())
.on('data', function (data) {
results.push;
})
.on('end', () => {
console.log(results);
callback(null, results);
});
} catch (err) {
console.log(err);
callback(Error(err));
}
};
輸出:

有人可以幫我指出問題所在以及如何解決。
uj5u.com熱心網友回復:
您沒有將資料推送到結果,請查看并進行如下更改
exports.handler = async function (event, ctx, callback) {
try {
const file = s3.getObject(params).createReadStream();
file
.pipe(csv())
.on('data', function (data) {
results.push(data);
})
.on('end', () => {
console.log(results);
callback(null, results);
});
} catch (err) {
console.log(err);
callback(Error(err));
}
};
uj5u.com熱心網友回復:
您沒有將資料推送到陣列:
const AWS = require('aws-sdk');
const s3 = new AWS.S3();
const csv = require('csv-parser');
const bucket = 'awslambdabuckets';
const objectkey = 'record.csv';
const params = { Bucket: bucket, Key: objectkey };
const results = [];
exports.handler = function (event, ctx, callback) {
try {
const file = s3.getObject(params).createReadStream();
file
.pipe(csv())
.on('data', function (data) {
results.push(data); // --> here
})
.on('end', () => {
console.log(results);
callback(null, results);
});
} catch (err) {
console.log(err);
callback(Error(err));
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/404737.html
標籤:
上一篇:NodeJS創建檔案但沒有文本
下一篇:Express網關回傳無法GET
