我是mongoose的新手我只是想了解一旦我们从客户端获得数据如何使用带有mongoose模式的nodejs来保存和处理承诺。在下面的示例中,如果发生任何错误,尝试将数据保存到集合句柄。
model.js
var mongoose = require('bluebird').promisifyAll(require('mongoose'));
var UserAccessSchema = new mongoose.Schema({
firstname: String,
lastname: String,
uid: String,
email: String,
});
export default mongoose.model('UserAccess', UserAccessSchema);
controller.js
var UserAccess = require('./access.model');
export function create(req, res) {
console.log(req.body);
UserAccess.createAsync(req.body)
.then()
.catch();
}
index.js
var express = require('express');
var controller = require('./access.controller');
var router = express.Router();
router.post('/', controller.create);
module.exports = router;
答案 0 :(得分:1)
你必须Promise.promisify所有你想要访问异步对象的对象。
如:
var Promise = require('bluebird')
var mongoose = require('mongoose');
var UserAccessSchema = new mongoose.Schema({
firstname: String,
lastname: String,
uid: String,
email: String,
});
var model = mongoose.model('UserAccess', UserAccessSchema);
model = Promise.promisifyAll(model)
export default model;
这样,您将使用创建的相应async
方法获得模型。
但是,为了清楚起见,你不需要蓝鸟与蓝鸟一起使用Promise。
您实际上只需在查询.exec()
之后附加方法即可返回Promise。
您可以参考文档中的section。