Я хочу прочитать файл из MongoDB GridFs и прикрепить его к почте, отправленной с узла почтовой программы.Поэтому мне нужно прочитать этот файл на стороне сервера, это означает, что у меня нет доступа к http-запросу или объекту ответа, и я не могу передать поток чтения на ответ, предложенный в нескольких местах через Интернет.
Мой код для чтения файла и отправки в виде буфера, как показано ниже -
let _fetchFileById = async (fileId, options) => {
let db = options.db
, gfs = Grid(db, mongo)
, filename = fileId
, file_buf = new Buffer('buffer');
return new Promise((resolve,reject) => {
gfs.collection('jobdescription')
let readstream = gfs.createReadStream({
filename: filename
, root: 'jobdescription'
})
readstream.on('data', function (chunk) {
console.log("writing!!!");
// file_buf.push(chunk)
if (!file_buf)
file_buf = chunk;
else file_buf = Buffer.concat([file_buf, chunk]);
});
readstream.on('end', function () {
// var buffer = Buffer.concat(file_buf);
db.close();
console.log(`returning`)
// console.log(file_buf)
resolve(file_buf)
})
})
}
, когда я использую file_buf в качестве ввода для вложения в почтовой программе узла, я получаю ниже ошибки -
TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be one of type string or Buffer. Received type object
.Любая помощь или указатели будут очень благодарны.