Node.js 如何通过管道将文件从MongoDB传输到具有GridFS的函数
我有一个将csv文件解析为数组的函数,因此我可以在前端显示其中的值,并使用该数组进行分页。(我使用ejs作为视图引擎)。这是函数Node.js 如何通过管道将文件从MongoDB传输到具有GridFS的函数,node.js,mongodb,express,gridfs,gridfs-stream,Node.js,Mongodb,Express,Gridfs,Gridfs Stream,我有一个将csv文件解析为数组的函数,因此我可以在前端显示其中的值,并使用该数组进行分页。(我使用ejs作为视图引擎)。这是函数 const parse = require('csv-parse'); function parsingCSV(filepath) { let arrayedCSV = []; return new Promise((resolve,
const parse = require('csv-parse');
function parsingCSV(filepath) {
let arrayedCSV = [];
return new Promise((resolve, reject) => {
fs.createReadStream(filepath)
.pipe(parse({ delimiter: ',' }))
.on('data', (dataRow) => arrayedCSV.push(dataRow))
.on('end', () => resolve(arrayedCSV));
});
}
我试图实现的是,我在MongoDB Atlas中有一个csv文件,如何将我的csv文件传输到上面的函数
下面是我尝试过的两个代码,但我无法实现我想要的
app.get('/csv/:filename', (req, res) => {
gfs.files.findOne({ filename: req.params.filename }, (err, file) => {
// Check if file
if (!file || file.length === 0) {
return res.status(404).json({
err: 'No file exists'
});
}
// Check if csv
if (file.contentType === 'text/csv') {
// Read output to browser
const readstream = gfs.createReadStream(file.filename);
readstream.pipe(res);
}
});
});
上面的代码只显示了文件的内部
app.get('/csv/:filename', (req, res) => {
gfs.files.findOne({ filename: req.params.filename }, (err, file) => {
// Check if file
if (!file || file.length === 0) {
return res.status(404).json({
err: 'No file exists'
});
}
// Check if csv
if (file.contentType === 'text/csv' || file.contentType === 'image/png') {
// Read output to browser
res.set('Content-Type', file.contentType);
res.set('Content-Disposition', 'attachment; filename="' + file.filename + '"');
let readstream = gfs.createReadStream({
filename: req.params.filename,
root: 'resume'
});
readstream.on("error", function(err) {
res.end();
});
readstream.pipe(res);
console.log(res);
}
});
这段代码只是下载文件
我犯了什么错