我使用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