V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
0x001
V2EX  ›  Node.js

nodejs 如何实现单例

  •  
  •   0x001 · 2014-06-17 14:09:28 +08:00 · 5788 次点击
    这是一个创建于 3847 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如我相保存我的mysql连接实例,我想保存在一个单例里,因为很多地方需要操作数据库。 这样就可以只需要连接一次。 不是每来一个请求去连接一次数据库。
    6 条回复    2014-06-27 17:34:45 +08:00
    ipconfiger
        1
    ipconfiger  
       2014-06-17 14:14:35 +08:00
    全局变量
    0x001
        2
    0x001  
    OP
       2014-06-17 14:36:08 +08:00
    @ipconfiger 全局变量不太好,因为有好多变量的,我想存在一个统一的地方。
    kfll
        3
    kfll  
       2014-06-17 14:37:23 +08:00
    # db.js

    var _con = null;

    function getConnection() {
    if (null === _con) _con = _connect();
    return _con;
    }

    function _connect() {
    // ...
    return xxxx;
    }

    exports.getConnection = getConnection;
    canesten
        4
    canesten  
       2014-06-17 14:39:01 +08:00
    请使用连接池
    a15819620038
        5
    a15819620038  
       2014-06-17 22:10:06 +08:00 via Android
    rekey
        6
    rekey  
       2014-06-27 17:34:45 +08:00
    require 会缓存结果的,你可以直接初始化,然后 module.exports = 实例。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2579 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:25 · PVG 23:25 · LAX 07:25 · JFK 10:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.