从Node.js的其他文件包括JavaScript类定义

我正在写Node.js的一个简单的服务器,我用我自己的类称为User ,看起来像:

function User(socket) { this.socket = socket; this.nickname = null; /* ... just the typical source code like functions, variables and bugs ... */ this.write = function(object) { this.socket.write(JSON.stringify(object)); } };

然后在过程的后期,我实例化了很多:

var server = net.createServer(function (socket) { /* other bugs */ var user = new User(socket); /* more bugs and bad practise */ });

我可以将我的移动User类定义到另一个javascript文件并以某种方式“包括”吗?

--------------解决方案-------------

甚至你可以简单地这样做

user.js的

module.exports = function User()
{
//...
}

server.js

var User = require('./user.js');
var user = new User();

PS不要使用全局这不是正确的方法,因为它可能会成为未来的大问题。

修改您的类定义阅读这样的:

exports.User = function (socket) {
...
};

然后重命名文件到user.js 。 假设它在你的主脚本的根目录下,你可以把它像这样:

var user = require('./user');
var someUser = new user.User();

这就是快速和肮脏的版本。 阅读关于CommonJS的模块,如果你想了解更多信息。

如果追加此为user.js

exports.User = User;

然后server.js你可以这样做:

var userFile = require('./user.js');
var User = userFile.User;

http://nodejs.org/docs/v0.4.10/api/globals.html#require

另一种方法是:

global.User = User;

那么这将在足够server.js

require('./user.js');

分类:JavaScript的 时间:2015-03-14 人气:0
本文关键词: JavaScript中,的node.js
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.906 (s). 10 q(s)