首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有Node.js + Express的全局对象

问具有Node.js + Express的全局对象
EN

Stack Overflow用户
提问于 2014-10-24 16:47:41
回答 1查看 1.2K关注 0票数 0

我正在学习Node.js + Express,编写一个基本的登录示例。在routes/login.js文件中设置了我的/login路由:

代码语言:javascript
复制
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、或?我不想在我要创建的每个路由文件上重新声明它们。我看起来像是一个包含或要求的方法。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-24 17:15:55

创建一个单独的模块,充当检索SQL连接的接口,如下所示:

代码语言:javascript
复制
    var mysql = require('mysql');
    var connectionpool = mysql.createPool({
      host     : 'localhost',
      user     : 'user',
      password : 'pass',
      database : 'database'
    });

    exports.getConnection = function (callback) {
      connectionpool.getConnection(callback);
    };

然后在另一个文件中:

代码语言:javascript
复制
    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);
                }           
            });

});
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26552544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档