【问题标题】:How to arrange files in a Node.js App? [closed]如何在 Node.js 应用程序中排列文件? [关闭]
【发布时间】:2012-08-20 16:53:13
【问题描述】:

我正在编写一个更大的应用程序,通过 Node.js(带有 socket.io 和 mysql 模块)进行双向通信和数据库访问。 因此我想找出一些文件,所以我没有一个巨大的 server.js 文件(例如:一个用于聊天的文件,一个用于数据库连接的文件等)。

有没有一种好方法可以在我的项目中安排这些文件?我正在寻找类似 jQuery 的 getScript 之类的东西,但我认为这不起作用,因为它是一个 Ajax 调用,在 Websocket 服务器上没有多大意义,对吧?

或者是创建自己的模块的最佳方式!?

【问题讨论】:

    标签: javascript node.js websocket socket.io


    【解决方案1】:

    是的,创建模块。

    如果您想将值传递给模块,您可以编写如下函数:

    var a, b, c;
    var self = this;   
    //
    // your module logic
    //
    exports.init = function(a, b, c)  {
      a = a;
      b = b;
      c = c;
      return self;
    }
    

    这是我最喜欢的模块化方法。然后你从你的代码中这样调用。

    var myModule = require('./myModule').init('modular', 'is', 'fun');
    

    那么你就有了更传统的 OOP

    function ThisIsNotAclass(a,b,c) {
      //
      // your module logic
      //
    }
    
    exports = function(a, b, c)  {
      return new ThisIsNotAclass(a,b,b);
    }
    

    然后你从你的代码中这样调用。

    var myModule = require('./myModule')('modular', 'is more', 'fun');
    

    【讨论】:

    • 谢谢!我认为这对我有用
    【解决方案2】:

    我主要使用module.exports。这是一个例子,core.js

    /**
     * Initialize the core routes.
     * @param app {Object} The app object.
     */
    var core = function( app ) {
            // CODE
    };
    
    /**
     * Expose core.
     * @type {Function}
     */
    module.exports = core;
    

    这里是app.js,最后:

    /**
     * Routes.
     */
    require("./controllers/core.js")(app);
    

    我发现这是安排文件和逻辑的好方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-06
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多