【发布时间】:2014-10-22 16:33:37
【问题描述】:
我的朋友们,很遗憾,我找不到任何关于如何在 node js express mongoose 应用程序中实现 bluebird promise 库的示例。
我的应用程序设置在 mongoose 模型、控制器和路由位于不同文件中的位置。
但是用猫鼬实现它,我就是想不通。
所以请有人告诉我它是如何使用的。请看下文。
//express controller Article.js
var mongoose = require('mongoose'),
errorHandler = require('./errors'),
Article = mongoose.model('Article');
exports.list = function(req, res) {
Article.find().sort('-created').populate('user', 'displayName').exec(function(err, articles) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(articles);
}
});
};
//猫鼬模型
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
/**
* Article Schema
*/
var ArticleSchema = new Schema({
created: {
type: Date,
default: Date.now
},
title: {
type: String,
default: '',
trim: true,
required: 'Title cannot be blank'
},
content: {
type: String,
default: '',
trim: true
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
mongoose.model('Article', ArticleSchema);
如果我想使用 Bluebird Promise 库,请问如何更改 export.list
提前致谢。
一些问题,
在猫鼬模型上我在哪里调用 promisify?
例如Article = mongoose.model('Article');
like thisArticle = Promise.promisifyAll(require('Article'));
要么
像这样
var Article = mongoose.model('Article');
Article = Promise.promisifyAll(Article);
【问题讨论】:
标签: javascript node.js express mongoose bluebird