Я разрабатываю сайт, который может обрабатывать большие файлы, поэтому я использую GridFS с MongoDB для управления этими файлами. В моем коде я использую грозный пакет для обработки элементов загрузки тела сообщения. В конфигурации грозного атрибута есть атрибут, который устанавливает каталог для размещения файла, который я загружу на мой компьютер, перед тем, как он будет сохранен в базе данных. Мой вопрос заключается в том, действительно ли этот файл необходимо загрузить на мой компьютер, поскольку он также будет загружен в базу данных. Код поста и получения заявок здесь ...
app.get('/', function(req, res){
res.writeHead(200, {'content-type': 'text/html'});
res.end(
'<form action="/fileupload" enctype="multipart/form-data" method="post">'+
'<h1>Formulario para testar a API</h1>'+
'<p>Entre com o titulo da imagem</p>'+
'<input type="text" name="title"><br>'+
'<input type="file" name="upload" multiple="multiple"><br>'+
'<input type="submit" value="Salvar informacoes">'+
'</form>'
);
});
// Rota de uma chamada POST
app.post('/fileupload', function (req, res) {
const form = new formidable.IncomingForm();
form.keepExtensions = true;
form.parse(req, function(err, fields, files) {
if (!err) {
client.connect(function(error) {
assert.ifError(error);
const db = client.db(dbName);
var bucket = new mongo.GridFSBucket(db);
fs.createReadStream(files.upload.path).
pipe(bucket.openUploadStream(files.upload.name)).
on('error', function(error) {
assert.ifError(error);
}).
on('finish', function() {
console.log('done!');
//process.exit(0);
});
});
}
});
form.on('end', function() {
res.send('Completed ..... go and check fs.files & fs.chunks in mongodb');
res.end();
});
});