2016-05-21 4 views
2

誰かがこの約束のセットアップがうまくいかない理由を教えてもらえますか?それは、ドキュメントを削除し、それを追加してから、それを見つけて、それをコンソールにすることになっていました。それはデータを慰めていません。mongooseとの約束を使用するのに問題があります

var Comp = require("./models/company.js"); 
    var arr = [ 
    {name : "comp1",industry : "industry1", ranking: 20}, 
    {name : "comp2",industry : "industry2", ranking: 5}, 
    {name : "comp3",industry : "industry3", ranking: 10} 
    ] 

    var output = {}; 
    var promise = Comp.find({}).exec() 
    promise.then(function(res){ 
     console.log("removed") 
     return Comp.remove({}).exec() 
    }) 
    .then(function(){ 
     return Comp.create(arr).exec() 
    }) 

    .then(function(data){ 
     return Comp.find({}).exec(); 
    }) 
    .then(function(data){ 
     console.log(data) 
    }) 

EDIT:

がエラーに

[TypeError: Comp.create(...).exec is not a function]

答えて

2

Model.createをつかまえた約束を返すので、戻り値に.exec()を呼び出す必要はありません。

.then(function(){ 
    return Comp.create(arr); 
}) 
+0

oh cool。したがって、クエリは約束を返しませんが、 'exec'を使用するとクエリは約束を返します。 'create'と' save'は約束を返しますので、 'exec'を使うべきではありません。右? –

+0

@jackblankそうです。疑わしいときは、[API文書](http://mongoosejs.com/docs/api.html)でMongooseを確認してください。 – JohnnyHK

関連する問題