promisify sails.js mongodb native()

时间:2015-10-14 02:51:45

标签: mongodb sails.js native bluebird

我使用sails.js和bluebird承诺使用MongoDB作为数据库,我需要对我的Team模型使用Model.native()方法,以下代码有效:

Team.native(function (err, teamCollection) {
if (err) {
    return res.serverError(err);
}
teamCollection.update({_id: relatedTeamId}, {
    $set: {
        geoCoordinates: {
            type: "Point",
            coordinates: [parseFloat(longitude), parseFloat(latitude)]
        },
        location: location
    }
}, function (err) {
    if (err) {
        return res.serverError(err);
    }
    return res.send("OK");
});

}); 但是,我想宣传这段代码,我该怎么做?

Promise.promisify(Team.native) 

似乎不起作用.. 我尝试的完整代码片段:

            ObjectId = require('mongodb').ObjectID;
            relatedTeamId = new ObjectId(teamId);
            nativeModel = Promise.promisify(Team["native"]);
            return nativeModel().then(function (teamCollection) {
                var updater = Promise.promisify(teamCollection.update);
                return updater({_id: relatedTeamId}, {
                    $set: {
                        getCoordinates: {
                            type: "Point",
                            coordinates: [parseFloat(longitude, parseFloat(latitude))]
                        },
                        location: location
                    }
                }).then(function () {
                    return res.send('OK');
                })["catch"](function (err) {
                    console.log(err);
                    return Promise.reject(err);
                });
            })["catch"](function (err) {
                return console.log('2');
            });

然而,控制台给了我以下错误消息:

data:    app.js:3056 - [TypeError: Cannot read property 's' of undefined]
data:    app.js:3056 - 2

0 个答案:

没有答案