前段时间我决定从PHP切换到节点.在我的第一个项目中,我不想使用任何ORM,因为我认为我不需要复杂化我的生活那么多学习另一件事(目前我正在学习节点和角度)因此我决定使用mysql包而不用还要别的吗.重要的是要说我有一些复杂的查询,我不想从sctratch学习如何使用9000 ORM节点之一使它们工作,这是我到目前为止所做的:
thing.service.js
Thing.list = function (done) {
db.query("SELECT * FROM thing...",function (err,data) {
if (err) {
done(err)
} else {
done(null,data);
}
});
};
module.exports = Thing;
Run Code Online (Sandbox Code Playgroud)
thing.controler.js
Thing = require('thing.service.js');
Thing.list(function (err,data) {
if (err) {
res.status(500).send('Error D:');
} else {
res.json(data);
}
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用蓝鸟来宣传这种功能呢?我已经尝试了......但我在这里寻求帮助.这是我试过的
var Thing = Promise.promisifyAll(require('./models/thing.service.js'));
Thing.list().then(function(){})
Run Code Online (Sandbox Code Playgroud) 我正在尝试在NodeJS中使用MySQL.我的整个应用程序都是用promises构建的,所以我也想宣传这个mysql模块.
所以我有这个:
Promise = require('bluebird');
var mysql = Promise.promisifyAll(require('mysql'));
Run Code Online (Sandbox Code Playgroud)
现在,根据他们的API,该connect()方法接受单个参数,err在连接错误的情况下调用回调.我的问题是,这如何转化为承诺?
承诺会在出错时解决吗?它会被拒绝吗?我.catch()也许需要吗?这是如何运作的?