Итак, я посмотрел это видео: https://youtu.be/EVIGIcm7o2w
И это многое объясняло.Но проблема в том, что у меня уже есть проект, созданный с Express
, поэтому мое соединение выполняется в app.js следующим образом:
// mongodb connection
var mongoose = require('mongoose');
var config = require('./globals/config');
mongoose.connect(config.db, {useNewUrlParser: true},).catch(e => console.log(e));
var db = mongoose.connection;
db.once('open', () => {
console.log('Connected to mongodb. Go to http://localhost:3000 to open app');
});
Теперь я хочу использовать gridFS, вдругой файл для загрузки файлов в мою базу данных, и я попробовал это:
var grid = require('gridfs-stream');
var mongoose = require('mongoose');
var fs = require('fs');
uploadFile(file) {
var config = require('./config');
mongoose.connect(config.db, {useNewUrlParser: true},).catch(e => console.log(e));
var conn = mongoose.connection;
grid.mongo = mongoose.mongo;
const gfs = grid(conn.db);
const writeStream = gfs.createWriteStream({
filename: file.filename,
});
fs.createReadStream(file.path).pipe(writeStream);
writeStream.on('close', function (file) {
console.log(`${file.filename} written to the db`);
});
}
Но это не имеет смысла, так как я открываю 2 соединения.Я посмотрел на mongoose-gridfs, но он также показал, что его использование в виде «app.js» не позволяет использовать разные способы работы.Как использовать gridfs, не открывая 2 соединения и не используя 2 разных файла js?