gpt4 book ai didi

javascript - 使用 Node.js + Express 的全局对象

转载 作者:行者123 更新时间:2023-12-01 00:21:02 26 4
gpt4 key购买 nike

我正在学习 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;

我想知道:如何使mysqlconnectionpool 在整个应用程序中可见?我不想在我将创建的每个路由文件中重新声明它们。我正在寻找类似 include 或 require 方法的东西。

有什么想法吗?

最佳答案

创建一个单独的模块作为检索 SQL 连接的接口(interface),如下所示:

    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);
}
});

});

关于javascript - 使用 Node.js + Express 的全局对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26552544/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com