С приведенным ниже кодом я могу загрузить изображение в mogodb один раз, если я попробую второй раз, я получаю сообщение об ошибке.Write after end, nodejs gridFS writeestream error
Я сделал некоторые исследования и его, потому что WriteStream закрывает NODEJS writeStream error
conn.once('open', function() {
var gfs = Grid(conn.db, mongoose.mongo);
app.post('/upload', function(req,res){
form.on('part', function(part){
if(!part.filename) return;
size = part.byteCount;
fileName = part.filename;
});
form.on('file', function(name,file){
var tempfile = file.path;
var origname = fileName;
var writestream = gfs.createWriteStream({ filename: origname });
fs.createReadStream(tempfile).on('end', function() {
res.send('<p><h1>Upload Complete!</h1><p>');
}).on('error', function() {
res.send('Error, upload failed!');
}).pipe(writestream);
});
form.parse(req);
});
app.get('/image/:id', function(req,res){
console.log(req.params.id)
gfs.createReadStream({_id:req.params.id}).pipe(res);
});
});
Сообщение об ошибке выглядит следующим образом
events.js:72
throw er; // Unhandled 'error' event
^
Error: write after end
at writeAfterEnd (C:\Users\Michael\Desktop\Chat-App\node_modules\multiparty\node_modules\readable-stream\lib\_stream_writable.js:161:12)
at Form.Writable.write (C:\Users\Michael\Desktop\Chat-App\node_modules\multiparty\node_modules\readable-stream\lib\_stream_writable.js:208:5)
at write (_stream_readable.js:582:24)
at flow (_stream_readable.js:591:7)
at _stream_readable.js:559:7
at process._tickCallback (node.js:419:13)
Так выглядит многопартийная проблематично с моим кодом. Мой вопрос заключается в том, как решить эту проблему, если я должен изменить метод post для запуска кода на идентификаторе?