2016-12-16 3 views
-1

Я новичок в mongoose, я просто хочу понять, как только у нас есть данные от клиента, как сохранить и hanlde обещает использование 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; 

ответ

1

Вы должны Promise.promisifyAll объекта, который вы хотите получить доступ к объектам асинхронных.

Такие, как это:

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 методов, созданных.

Но, чтобы быть ясным, вам не нужна синяя птица для работы с обещаниями с синей птицей.

Вы можете просто добавить метод после запросов .exec(), чтобы вернуть Promise.

В документации можно обратиться к section.

+0

Я не думаю, что вам нужно '.exec()'. Я делаю такие вещи, как 'Model.find(). Then (function (docs) {})' –

+0

@jackblank. Запрос возможен, но это не значит, что это обещание. Например, у вас нет метода catch. – thalesmello

+0

Спасибо, я понял, как заставить его работать. – hussain

Смежные вопросы