Действительно ли необходимо установить каталог для размещения элементов, которые я буду загружать в мою базу данных mongoDB с огромными? - PullRequest
0 голосов
/ 04 февраля 2020

Я разрабатываю сайт, который может обрабатывать большие файлы, поэтому я использую 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();
    });

});
...