如何在mongoose中保存一些文件?
例如,我有POST
方法/
和GET
方法/
的路由。
发送到/
应该将发送的文件保存到MongoDB数据库(mongoose),而获取/
应该发送保存的文件。如果文件是图像,我如何将其作为图像发送到客户端? (从用户那里保存原始文件是一个好习惯,还是应该将它们保存在mongodb中 - 如果是这样的话:怎么做?)。
答案 0 :(得分:2)
首先,您应该拥有mongoDB
的架构。
你可以在SCHEMA.js
文件中加载它:
module.exports = {
model: function(Schema) {
return new Schema({
_id: { type: String, index: true, unique: true },
updateDate: { type: Date, default: Date.now },
data: String
})
}
}
然后您可以按照以下要求进行操作:
router.post('/', function(req, res){
var data = req.body.data;
SCHEMA = require('/YOUR/SCHEMA/PATH').SCHEMA;
SCHEMA.update({
_id: data.id
}, {
data: data
}, {
upsert: true
}, function (err) {
if (err) {console.error('subs-on-userapps> failed update token, err=',err);}
});
})
在上面的部分中,您将获得数据表单请求,然后将其插入mongoDB。
** .update
首先在第一部分和upsert:true
搜索您的数据
选项插入数据(如果之前不存在)。
要访问您的数据,您可以使用Get
方法进行其他路由:
router.get('/', function(req, res){
SCHEMA.findOne({QUERY})
.execQ()
.then(function(result) {
res.json({result: result})
});
})