什么是通过WebSockets发送位置更新的正确方法?

我需要在运行node.js的游戏世界中广播位置更新。 我目前的想法是使用BinaryJS 。 不过,我不确定使用它的正确方法是什么。 我曾经想过3个选项: 我现在怎么样,使用socket.io :我以编程方式存储在给定的时间内发生的位置更新的缓冲区,然后一次发送它: setTimeout(function(){ //called a fixed amount of times per second (40) //this variable will hold the accumulated position changes on the last 25ms //var accumulated_position_changes = [id0,x0,y0,z0, id1,x1,y1,z1…]; client.send(accumulated_position_changes); },25); 但是,如果binary.js完成分块(是吗?),那么每次发生位置变化时,我应该不加区别地发送位置更改吗? MyClass.prototype.set_position = function(x,y,z){ // this is called thousands times a second this.x = x, this.y = y, this.z […]

使用节点模块的返回值作为variables?

我目前正在尝试编写一个简单的小节点模块,使其更容易访问API。 我遇到的问题是我希望能够打电话 var randomVar = myModule.function() 并将该函数的输出分配给variables。 我相信这很容易返回值,但randomVar保持不确定,我显然在这里丢失的东西。 这是我的HTTP请求,这似乎是相当标准的: exports.function = function(){ var options = { // stuff }; fetchResult = function(options,callback){ var http = require('http'); var str = ''; http.get(options,function(res){ res.on('data',function(chunk){ str += chunk; }); res.on('end',function(){ callback(JSON.parse(str)); }); }).on('error', function(e){ callback(e.message); }); } fetchResult(options,function(data){ console.log(data); // what do I do here? }); } 最底层的console.log输出我想要的数据,但是我怎样才能将它分配给模块外部的variables呢? […]

错误“cordova平台添加android”

我一直在search整个networking的答案,但每个人似乎都指向环境variables,目前我有这些设置在我的环境 ANT_HOME C:\java\ant JAVA_HOME C:\Program Files\Java\jdk1.7.0_45 PATH values C:\Program Files\nodejs; %JAVA_HOME%\bin; %ANT_HOME%\bin; C:\Users\Julius Robles\Documents\Android\adt-bundle-windows-x86_64-20131030\tools; C:\Users\Julius Robles\Documents\Android\adt-bundle-windows-x86_64-20131030\platform-tools; C:\Users\Julius Robles\Documents\Android\adt-bundle-windows-x86_64-20131030\build-tools; 我假设这些都是我需要的,但仍然无法添加android平台。 我也尝试在ecplise中导入cordova框架,但一直显示不能运行android库的错误。 任何想法家伙? 我安装了Windwos 7(x64): Sencha – Sencha Cmd v4.0.1.45 Cordova – 3.4.0-0.1.3 Ant – Apache Ant(TM)1.9.3版本Node – v0.10.24 Phonegap – 3.4.0-0.19.7 来自我的CMD的错误日志在这里: C:\xampp\htdocs\MyIO>cordova platform add android Creating android project… C:\Users\Julius Robles\.cordova\lib\android\cordova\3.4.0\bin\node_modules\q\qj s:126 throw e; ^ Error: […]

只从Express静态目录服务.js文件?

我正在查找是否有可能从Express.js静态目录中只提供一种types的文件(通过扩展名筛选)。 例如,假设我有以下静态目录: Static FileOne.js FileTwo.less FileThree.html FileFour.js 并说,我只想使任何给定的请求只有扩展名为.js文件,所有其他请求将得到一个500响应(或类似的东西)。 我将如何去实现这一目标? Express是否具有我无法find的烘焙filter,还是我需要使用正则expression式?

在一个到多个embedded式文档mongodb中添加一个条目

我是MongoDB的新手,遇到以下用例: 让我说我有我的MongoDB文件是这样的: { _id: "joe", name: "Joe Bookreader", numbers: [ { mobile: 741134217, }, { home: 123452411 } ] } 现在我需要两个执行两个操作: 添加一个新号码{office:112342282} 删除用户的家庭号码 我相信我们可以在Mongo中做到这一点,但我没有得到任何地方的语法,我也无法在MongoDB文档中find它。 PS我正在使用和尚图书馆这样做,僧侣具体的语法会有很大的帮助。 但否则也会​​帮助我!

在AngularJS中调用$ save方法

我正在寻找一个callback在我的$save方法在angularjs中使用。 我正在发送一篇博文到node.js后端,并通过了recaptchavalidation。 正如$resource文档中的操作不起作用: 非GET实例操作:实例。$ action([parameters],[success],[error]) var post = new Posts({ title: this.title, content: this.content, response: this.model.captcha.response, challenge: this.model.captcha.challenge }); post.$save({}, function(addedpost) { $location.path('posts/' + addedpost._id); }, function(error) { console.log(error); vcRecaptchaService.reload(); }); 在服务器中,我使用node.js的simple_recaptcha模块来validation请求中打包的recaptcha挑战和响应。 var verifyRecaptcha = function(req,res,next){ var privateKey = 'XXXXXXXXXXXXXXXXXXXXXXXX'; var ip = req.ip; var challenge = req.body.challenge; var response = req.body.response; simple_recaptcha(privateKey, ip, challenge, […]

RedisStore.prototype .__ proto__ = Store.prototype

我没有使用NodJs的经验。 我试图从命令提示符使用节点命令运行app.js文件,我得到这个错误 D:\Imports\sparkleshare-dashboard\node_modules\connect-redis\lib\connect-redis.j s:96 RedisStore.prototype.__proto__ = Store.prototype; ^ TypeError: Cannot read property 'prototype' of undefined at module.exports (D:\Imports\sparkleshare-dashboard\node_modules\connect-re dis\lib\connect-redis.js:96:41) at Object.<anonymous> (D:\Imports\sparkleshare-dashboard\app.js:12:42) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:902:3 这里是我的app.js文件 /** * Module dependencies. */ var express = require('express'); var querystring = […]

使用映射并将对象传递给后续的函数调用

我有这样的代码: var downloadFiles = function () { console.log('downloading files'); aFtpClient. listAsync(). then(processListing). map(function (object) { return processItem(object); }). then(downloadItem). catch (TypeError, function (e) { console.dir('arse' + e); }). catch (Promise.RejectionError, function (e) { console.error("unable to read file, because: ", e.message); }); console.log('after downloading files'); }; processListing返回一个包含source和destination属性的对象数组。 我用map来处理数组并调用processItem 。 有没有办法将映射的对象传递给downloadItem ?

如何更改package.json输出位置

是否有一个package.json选项来指定node_modules目录的相对位置? 对于我的应用程序,我有一个如下所示的目录结构。 当前目录结构 root/ —/client ——-/(client code) —/server ——/package.json* (sibling of node_modules) ——/node_modules* ——/server.js 我想将grunt任务添加到项目的根目录(因为它们将应用于客户端代码和服务器代码)。 Gruntfile.js需要是package.json的兄弟 。 我想将package.json移到根目录,但是我也想把node_modules保存在服务器目录下。 在package.json中有一个选项来做到这一点吗? 我想要得到的目录结构如下所示。 首选目录结构 root/ —/package.json* (not a sibling of node_modules) —/Gruntfile.js —/client ——-/(client code) —/server ——/node_modules* 像下面这样的选项是最受欢迎的(在npm文档中似乎没有这样的选项) 假设的package.json { "output_dir": "server/node_modules", // Something like this "dependencies": { … }, "devDependencies": { … } }

不能使mongoose过期/ TTL工作

var mongoose = require('mongoose'), Cache, cache; mongoose.connect('mongodb://localhost:27017/test'); Cache = mongoose.model('Cache', mongoose.Schema({ value: {}, createdAt: {type: Date, expires: 3600} })); cache = new Cache({ createdAt: new Date(), value: {foo: 'bar'} }); cache.save(function(err, obj) { console.log(err, obj); process.exit(); }); 我试图让caching在一定的时间后被删除。 我等了3分多钟,我插入的文件根本没有被删除。 我错过了什么吗?