Nodejs休息服务

时间:2016-03-20 15:38:49

标签: javascript mysql node.js rest

我正在尝试使用Nodejs和Mysql创建REST服务。 他是我的代码:

composer dump-autoload

};

但我有错误

var sqlDb = require("mysql"); 
var settings = require("../settings");
exports.executeSql = function (sql, callback) {
var conn = sqlDb.createConnection(settings.dbConfig);
conn.connect()
.then(function () {
    var req = new sqlDb.Request(conn);
    req.query(sql)
    .then(function (recordset) {
        callback(recordset);
    })
    .catch(function (err) {
        console.log(err);
        callback(null, err); 
    });
})
.catch(function (err) {
    console.log(err);
    callback(null, err);
});

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

正确的功能是createConnection。请阅读文档:

https://www.npmjs.com/package/mysql#introduction

答案 1 :(得分:0)

在文档中,如果您查看documentation可以用作回调方法,则 connect 方法不会返回承诺:

var connection = mysql.createConnection({
  host     : 'example.org',
  user     : 'bob',
  password : 'secret'
});

//** Look here...
connection.connect(function(err) {
  if (err) {
    console.error('error connecting: ' + err.stack);
    return;
  }
  console.log('connected as id ' + connection.threadId);
});

作为一个很好的选择,您可以使用正在使用bluebird的软件包 promise-mysql ,并且可以找到here(强烈建议使用)或包装像使用bluebird这样的承诺:

async function connect(connection) {
   return new Promise((resolve, reject) => {
      connection.connect((err) => {
         return err ? reject(err) : resolve(connection);
      })
   });
}