Tag: 实例

在Node.js中创build一个模块的副本,而不是一个实例

这将是我在stackoverflow上的第一个问题,希望这个顺利。 我一直在做一个游戏(使用corona SDK),我使用Node.js编写了一个小型服务器来处理我的客户端之间的一些聊天消息,没有问题。 现在我正在扩大这个servlets器来做更多,我想要做的是创build一个外部文件(模块),将持有一个对象,具有所有的function和variables,我需要代表一个房间我的游戏“大厅”,有两个人可以相互对打,每次我有两个玩家准备玩,我会为他们创build一个空房间的副本,然后在那个房间初始化游戏。 所以我在我的主项目文件中有一个数组,每个单元格都是一个房间,我的计划是将模块导入该数组,然后我可以在特定的“房间”中初始化游戏,玩家将玩,游戏会继续下去,一切都会好的…但是…我在main.js中的代码: var new_game_obj = require('./room.js'); games[room_id] = new_game_obj(); games[room_id].users = [user1_name,user2_name]; 现在,在我的房间里,我有这样的东西: var game_logistics = {}; game_logistics.users = new Array(); game_logistics.return_users_count = function(){ return game_logistics.users.length; } module.exports = function() { return game_logistics; } 到目前为止这么好,这工作就好,我可以简单地去: games[room_id].return_users_count() 我会得到0或1或2,这当然取决于有多less用户join了这个房间。 一旦我打开一个新的房间,问题就开始了,因为Node.js会将我创build的模块实例化,而不是复制它,如果我现在创build一个新房间,即使我删除和/或删除旧房间,它会提供我已经更新的旧房间的所有信息,而不是一个新的洁净室。 例: var new_game_obj = require('./room.js'); games["room_1"] = new_game_obj(); games["room_2"] = new_game_obj(); games["room_1"].users = ["yuval","lahav"]; […]

节点通过构造器创build实例

在尝试使用nodejs时,遇到了通过构造函数创buildisntances的问题。 我创build简单的购物车function。 我有文件cart.js var items = []; function addItem (name, price) { items.push({ name: name, price: price }); } exports.total = function () { return items.reduce(function (a,b) { return a + b.price; }, 0); }; exports.addItem = addItem; 我用节点运行它 var cart = require('./cart') 但是,如果我需要创build一个Cart的多个实例呢? 我试图重构我的代码,创build一个构造函数,它包含items[] addItem() and total()函数,如下所示: exports.Cart = function () { var items […]

在Express js会话中存储一个实例

我正在使用expressjs会话,我有一个实例需要存储: function a(){this.name="";} var ins = new a(); req.session['user'] = ins; 当我下次得到res.session ['user']的时候,这个对象不是instanceof a,并且它不能访问任何原型方法,我怎样才能在会话中存储对象的ref,看起来会话会转换它到json对象

Node.js对象实例化是否为每个用户创build一个对象?

所以我正在学习这个教程 ,学习如何在Node.js中创build一个RESTful API,其中一部分突然让我有点担心。 在应用程序中实例化对象以处理称为TaskRepository()的RESTful请求。 根据与教程相关的Gist ,您将看到以下代码片段: var taskRepository = new TaskRepository(); 我的问题是,这将实例化每个用户一个TaskRepository()对象? 在这种情况下,如果交通stream量足够高,是不是有机会跑出内存? 这里最好的做法是什么? 此外,如果是这样的话,你将如何绕过它以避免未来的交通拥堵?

如何检查一个对象是否是一个node.jsstream实例?

我试图检查某个对象( this )是否是一个stream实例。 我很难确定它是否仍然是this函数的内核,就像函数被触发一样。 我已经尝试过typeof this ,它返回一个object 。 我已经看过这个问题,没有find明确的答案..任何build议? 谢谢之前 StreamName.prototype._getEndpointData = function ( endpoint ) { /* Make a request based on a specific endpoint */ var apikey = this.source.apikey; request.getAsync( { headers: { // 'content-type' : 'application/x-www-form-urlencoded', 'User-Agent': 'request', 'Authorization': getAuthByApikey( apikey ) }, url: generateUrl( apikey, endpoint ) }) .get( 1 ) […]

新function返回新function

我对JavaScript中的新关键字有点困惑。 以下面的例子 function A (value) { this.a = value; } function B (value) { return new A (value); } console.log ( B (0)); // { a: 0 } console.log (new B (0)); // { a: 0 } 我希望能够创build一个“A”的新实例,而不必使用“新”。 为此,我有“B()”,但是当我调用“new B()”时,它看起来与“B()”做了同样的事情,就像忽略了“new”一样。 在这两种情况下,instanceof等于“A”。 究竟是怎么回事?

确保只有nodejs应用程序的单个实例正在运行

这是一个优雅的方式,以确保只有一个nodejs应用程序的实例正在运行? 我试图使用pidlock npm,但是,它似乎只适用于* nix系统。 使用互斥锁可能吗? 谢谢

node.js – 直接从require创build类的实例

我在一个单独的文件中有一堂课。 我需要在另一个文件中创build它的一个实例。 我试过这个: var connection = new require('./connection.js')("ef66143e996d"); 但是这不是我想要的。 现在我正在使用这个临时解决scheme: var Connection = require('./connection.js'); connection = new Connection("ef66143e996d"); 两个问题; 首先,为什么不这样做。 其次,我怎样才能做到这一点呢?

Mongoose实例方法未定义

我使用Mongoose定义了一个实例方法来validation代表(用户): RepSchema.methods.authenticate = function(password){ return this.encryptPassword(password) === this.hashed_password; }; 在我的应用程序中,我find了代表并调用它的authenticate方法: var mongoose = require("mongoose"); var Rep = mongoose.model("Rep"); Rep.findOne({email: email}, function(err, rep){ if (rep.authenticate(req.body.session.password)){ req.session.rep_id = rep._id; res.redirect('/calls', {}); } }); 但是我得到这个错误: TypeError: Object { email: 'meltzerj@wharton.upenn.edu', password: XXXXXXXXX, name: 'meltz', _id: 4fbc6fcb2777fa0272000003, created_at: Wed, 23 May 2012 05:04:11 GMT, confirmed: false, company_head: false } […]