0
私はbluebirdを使用しています。nodejs/mongoose/bluebirdで私の約束を返すことができません
私はまた、ブルーバードのPromisifyをモデルに使用しました。私のプロジェクト全体
var Promise = require('bluebird');
var mongoose = Promise.promisifyAll(require('mongoose'));
var Collection = Promise.promisifyAll(require('../models/collection'));
var Vote = Promise.promisifyAll(require('../models/vote'));
、それが正常に働いていますが、何らかの理由で、私はそれがこの「保存」メソッドにコレクションの値を返すために取得することはできません。ここで
var CollectionSchema = new mongoose.Schema({
user : {type: mongoose.Schema.ObjectId, ref: 'User', required: true},
whiskey : {type: mongoose.Schema.ObjectId, ref: 'Whiskey', required: true},
favorite: {type: Boolean, default: false},
timestamp: { type : Date, default: Date.now }
});
CollectionSchema.statics.createCollection = function(o) {
console.log('hit model')
return Collection
.findAsync(o)
.then(function(existing) {
console.log('existing collection ', existing)
if (existing.length) {
return{
message: 'already collected'
}
} else {
console.log('no existing collections found')
return Collection
.saveAsync(o)
.then(function(collection) {
console.log('new collection/does not console.log ', collection)
return {
collection: collection
};
});
}
})
};
がcollectionCreateメソッドが呼び出されるとの約束からの応答のデータ」を期待しているコントローラ、次のとおりです。
は、ここに私のモデルです。私が間違っていたところ、私は本当に指摘して目の第2のセットを使用することができ
exports.create = function(req, res){
console.log('init')
console.log('init body ', req.body)
Collection.createCollectionAsync({user: req.user._id, whiskey: req.body.whiskey}).then(function(data){
console.log('collection promise ', data)
res.send(data);
})
};
:しかし、saveAsyncマングースの方法は、呼び出したり返すように思われません。
意味があります。再びありがとう@Bergi。私はあなたの頭の中でこれを包み込むのを手伝ってくれて、あなたに借りている。 – NoobSter