0

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

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

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

4

2 回答 2

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');
于 2012-08-20T08:26:08.830 回答
1

我主要使用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);

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

于 2012-08-20T08:34:08.783 回答