我正在研究Node.js + Express,编写一个基本的登录示例。我的/login
路由设置在 routes / login.js 文件中:
var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var connectionpool = mysql.createPool({
host : 'localhost',
user : 'user',
password : 'pass',
database : 'database'
});
router.post('/', function(req,res){
connectionpool.getConnection(function(err, connection) {
if (err) {
console.error('CONNECTION error: ',err);
res.statusCode = 503;
res.send({
result: 'error',
err: err.code
});
} else {
// Do something
}
});
});
module.exports = router;
我想知道:如何在整个应用程序中显示 mysql 或 connectionpool ?我不想在我创建的每个路径文件上重新声明它们。我看起来像包含或要求方法。
有什么想法吗?
答案 0 :(得分:6)
创建一个单独的模块,作为检索SQL连接的接口,如下所示:
var mysql = require('mysql');
var connectionpool = mysql.createPool({
host : 'localhost',
user : 'user',
password : 'pass',
database : 'database'
});
exports.getConnection = function (callback) {
connectionpool.getConnection(callback);
};
然后在另一个文件中:
var connections = require('./connections');
connections.getConnection(function (err, c) {
// Use c as a connection
c.query("select * from table limit 10 ",function(err,rows){
//this is important release part
c.release();
if(!err) {
console.log(rows);
}
});
});