在节点JS中使用传统的JavaScript对象

我正在努力做一个NODE JS项目,并且学习Node JS结构的入口和出口。 我已经看遍了互联网,找出如何做到这一点,没有或几乎没有运气。 问题如下:

我有一个叫做player的类,它是在一个名为player.js的文件中创build的

var playa = function () { this.createPlayer = function(){ } } 

在我的index.js文件中,我链接了我的播放器

  var playa = require("./player.js"); 

但是,当我试图引用我的球员

  io.on('connection', function(socket){ var player = new playa(); player.createPlayer(); }); 

控制台告诉我,playa不是一个function,服务器停止。

  1. 我甚至允许在节点中使用传统的OOP JS? 如果我将这个类移动到index.js文件中,它会非常出色,但是由于类很大,所以它会变得不稳定,我打算至less使用5个类。

2.如果可能的话,也可以这样构build我的对象,那么我如何链接它们/正确引用它们?

  1. 如果既不可能也不可能,那么构build我的对象的正确方法是什么? 我希望不要脱离现在的惯例,因为这是我习惯的,我需要创build多个球员的实例。

如果将构造函数作为module.exports属性 module.exports ,则必须将其作为从require()返回的值的属性引用它:

 var playa = require("./player.js"); var player = new playa.playa(); 

如果你想require()返回函数本身,你可以写

 module.exports = function() { this.createPlayer = function(){ } } 

将此添加到您的player.js文件的底部

 module.exports.playa = playa; 

这将允许“class级”可用

编辑

您将需要创build一个如下所示的实例:

 var p = require('./player.js') var player = new p.playa();