使用 gridfs-stream 表达和 mongodb 非常新
Very new to express and mongodb with gridfs-stream
提前感谢你们能给我的任何帮助。我正在尝试使用 mongodb、mongoose、gridfs-strea 和 express 在 mongodb 上存储 img 文件。
我不想将文件存储在文件夹中。我希望 gfs.createWriteStream 从 express 中直接从 app.post 中获取文件。 App.post 目前正在通过模式模型将一些字符串保存到 mongodb 中。
路由到 app.post 的表单包含字符串和 img 文件的输入。
我尝试这样做(dnimgfront 是输入的名称):
dnimgfront:req.pipe(gfs.createWriteStream('req.body.dnimgfront'))
我回来了。
TypeError: Object function Grid(db, mongo) {
if (!(this instanceof Grid)) {
return new Grid(db, mongo);
}
mongo || (mongo = Grid.mongo ? Grid.mongo : undefined);
我的问题是我必须能够从同一个 app.post 保存函数中存储 img 和字符串。有什么想法吗?
我用来连接 mongodb 的是:
mongoose.connect('mongodb://localhost/veeltaxi');
var con=mongoose.connection;
con.once('open', function(){
console.log('connected to mongodb succesfully!')
});
在此先感谢您的帮助。
首先,您需要一个代替 gridfs-stream 的工具:
var GridStream = require('gridfs-stream');
var mongodb = require('mongodb');
var gfs = new GridStream(mongoose.connection,mongodb);
此时您可以创建写入流和管道:
var writeStream = gfs.createWriteStream({
filename: filename, // the name of the file
content_type: mimetype, // somehow get mimetype from request,
mode: 'w' // ovewrite
});
req.pipe(writeStream);
但是,目前 Node.js MongoDB 驱动程序的版本为 2.0,它使用 Streams 2,因此如果您使用的是该版本,则没有理由使用 gridfs-stream
mongodb
库的。 See the source code for v2.0.13. 仅供参考,在更新的驱动程序中实现的流是双工的。 (另外:gridfs-stream 也有它的问题,虽然积极维护,但不是很频繁。)
提前感谢你们能给我的任何帮助。我正在尝试使用 mongodb、mongoose、gridfs-strea 和 express 在 mongodb 上存储 img 文件。 我不想将文件存储在文件夹中。我希望 gfs.createWriteStream 从 express 中直接从 app.post 中获取文件。 App.post 目前正在通过模式模型将一些字符串保存到 mongodb 中。 路由到 app.post 的表单包含字符串和 img 文件的输入。
我尝试这样做(dnimgfront 是输入的名称):
dnimgfront:req.pipe(gfs.createWriteStream('req.body.dnimgfront'))
我回来了。
TypeError: Object function Grid(db, mongo) {
if (!(this instanceof Grid)) {
return new Grid(db, mongo);
}
mongo || (mongo = Grid.mongo ? Grid.mongo : undefined);
我的问题是我必须能够从同一个 app.post 保存函数中存储 img 和字符串。有什么想法吗?
我用来连接 mongodb 的是:
mongoose.connect('mongodb://localhost/veeltaxi');
var con=mongoose.connection;
con.once('open', function(){
console.log('connected to mongodb succesfully!')
});
在此先感谢您的帮助。
首先,您需要一个代替 gridfs-stream 的工具:
var GridStream = require('gridfs-stream');
var mongodb = require('mongodb');
var gfs = new GridStream(mongoose.connection,mongodb);
此时您可以创建写入流和管道:
var writeStream = gfs.createWriteStream({
filename: filename, // the name of the file
content_type: mimetype, // somehow get mimetype from request,
mode: 'w' // ovewrite
});
req.pipe(writeStream);
但是,目前 Node.js MongoDB 驱动程序的版本为 2.0,它使用 Streams 2,因此如果您使用的是该版本,则没有理由使用 gridfs-stream
mongodb
库的。 See the source code for v2.0.13. 仅供参考,在更新的驱动程序中实现的流是双工的。 (另外:gridfs-stream 也有它的问题,虽然积极维护,但不是很频繁。)