Articles of asynchronous

Mongoose ODM:由于asynchronous,无法保存编码的密码

当文档已经存在时,我有盐生成和密码编码已经准备好的问题。 => mongoosejs不等到哈希结束,所以我们在数据库中没有密码和盐(但我可以console.log他们:)。 有什么可以避免这种行为? 一个服务员的function? 还是应该将编码部分移动到一些预保存中间件? 编码方法 UserSchema.methods.encodePassword = function(password) { crypto.randomBytes(32, function(err, buf) { this.salt = buf.toString('hex'); console.log(this.salt); crypto.pbkdf2(password, this.salt, 25000, 512, function(err, encodedPassword) { if (err) throw err; this.password = encodedPassword; console.log(this.password); }.bind(this)); }); }; 路线行动 // creates a new user app.post('/users', function(req, res) { // create new user var user = new […]

node.js让大量的tcp客户端大失所望

我试图从服务器发送一堆tcp客户端。 为了减less响应上的服务器负载,我想分开保持活动。 如果我有3000个tcp客户端,并且60秒保持活跃的时间间隔,那么我需要在60年代错开保持活跃的信息,并且每秒发送50个消息。 假设: 大量的tcp连接(以千计) TCP连接持续存在,预计可以在最less的几个小时内激活 服务器需要在60秒之内知道客户端是否不再连接 来自服务器和客户端的其他信息将被反复发送 保持活着从客户端返回消息包含有用的数据(我认为排除UDP) 目前,我的想法是存储我的TCP连接作为一个标准的JavaScript对象,有一些id映射到一个特定的连接本身。 然后,每秒钟,我得到这个对象的键的数组,并发送保持活跃的一部分这些。 这是一个好方法吗? 有更好的方法还是我应该考虑的其他事情? 我的初始刺戳问题的示例代码: var KEEP_ALIVE_INTERVAL = 1000; // time between groups var KEEP_ALIVE_CYCLE = 3; // number of groups var tcp_conns = { a:"a", b:"b", c:"c", d:"d", e:"e", f:"f", g:"g", h:"h", i:"i" }; var intervalCounter = 0; setInterval(function() { console.log("sending keep alives intervalCounter="+intervalCounter); var […]

来自teplate的Node.jsasynchronous调用

我刚刚开始使用node.js,这个问题肯定有一个明显的答案,但我不能把它closures。 让我们用这个单一的方法来build立一个叫club的模型: club.getStaff = function(callback) { client.sinter('club-staff:'+club.id, callback); }; 到目前为止,我通过callback来pipe理应用程序stream,但现在我陷入了模板。 我将如何呈现asynchronous调用? 我想迭代staff并打印出来。 我想我可以在渲染之前调用这个方法,实际上是在callback中渲染。 那感觉有些不对 如果该方法不需要被调用,则浪费资源(因为如果在任何模板中)。 此外, 渲染包装将增加每个引入的新(asynchronous)variables。

原型和async.forEach的范围问题

我有一个范围问题,我不明白。 我有这个对象的一些方法: FileInfo = (file) -> @name = path.basename(file.path); FileInfo::uploadImage = (filename, callback) -> FileInfo::handleImage = (version, callback) -> # Here I would like to call uploadImage 我从async.forEach循环中调用handleImage,如下所示: async.forEach options, fileInfo.handleImage, (err) – 我想从handleImage中调用uploadImage,但我得到TypeError:Object#没有方法'uploadImage' 我已经尝试过,在handleImage内部,如下所示: this.uploadImage 以及: that = this that.uploadImage 既没有工作。 如果我在forEach循环之外调用fileInfo.handleImage,它可以正常使用这个或那个。

Node.jscallback| 使用瀑布streamasynchronousforEach嵌套循环

我迷失在callback中。 代码和期望的输出如下。 那么,什么情况是内循环不执行,应该打印@b数组= = ['a','b','c'] Async = require('async') @a = [1,2,3] @b = ['a','b','c'] Async.forEachSeries @a, (aa , cbLoop1) => console.log aa console.log "^ number from Loop-1" Async.forEachSeries @b, (bb , cbLoop2) => #call the method below Async.waterfall( [ (cb) -> #call method 'start' #'start' method has a callback that gets info using HTTP GET […]

有没有办法将信息传递给一个async.js并行调用,所以我不必使用全局variables?

有没有办法将信息传递给一个async.js并行调用,所以我不必使用全局variables? async.parallel([ function(callback){ setTimeout(function(){ callback(null, 'one'); }, 200); }, function(callback){ setTimeout(function(){ callback(null, 'two'); }, 100); }, ], // optional callback function(err, results){ console.log(info) // the results array will equal ['one','two'] even though // the second function had a shorter timeout. }); 我想要最后的callback,以了解“信息”的价值。 谢谢你的帮助!

Node.js如何处理连接?

我想知道节点如何处理连接。 我的意思是:当我跑步… node myserver.js …我提出请求,Node做什么? 我做了一个testing。 我有一个服务器运行socket.io。 我在浏览器中打开了两个标签,它们构build了WebSockets连接。 我检查线程( ps -eLf ),并且总是运行相同的6个线程: node 12837 12518 12837 1 6 22:29 pts/0 00:01:10 node /usr/local/lib/node_modules/node-dev/wrapper.js prueba1.js node 12837 12518 12838 0 6 22:29 pts/0 00:00:00 node /usr/local/lib/node_modules/node-dev/wrapper.js prueba1.js node 12837 12518 12839 0 6 22:29 pts/0 00:00:14 node /usr/local/lib/node_modules/node-dev/wrapper.js prueba1.js node 12837 12518 12840 0 6 22:29 […]

节点线程是模拟循环的错误地点吗?

假设有一个天气模拟器产生/计算天气,每隔0.5秒一次setInterval就会启动并执行一系列计算,以使读数和处理数据成为可读的数据。 然后它会通过套接字触发相关数据login,也许只有当数据实际发生变化时。 那么,将天气模拟/发生器自己运行在subprocess中,并将I / O保存在节点的单线程中会更好吗? 或者,会创buildlocking要求吗?

同步Jake Node.js任务

有两个模型添加到数据库后,有人可以帮我closures数据库吗? 我试过阅读 http://howtonode.org/intro-to-jake Node.js和Jake – 如何在任务中同步调用系统命令? 和https://github.com/mde/jake上的github自述文件 但似乎无法弄清楚。 以下是自述文件的摘录 所有任务运行后清理,jake'complete'事件基本的'jake'对象是一个EventEmitter,并在运行所有任务后触发一个'complete'事件。 当任务启动一个保持Node事件循环运行的进程(例如数据库连接)时,这有时是有用的。 如果您知道在所有任务完成后要停止正在运行的Node进程,则可以为“完成”事件设置侦听器,如下所示: jake.addListener('complete', function () { process.exit(); }); 现在,它甚至在打开连接之前closures连接。 // db connect var db = require('./schema'); desc('Seed MongoDB with initial data'); task('seed', [], function () { //******* Populate the database var user1 = new db.userModel({ email: 'x@x.com', password: 'x', phone: x }); user1.save(function(err) { if(err) […]

带有node.js和socket.io的SOAP客户端

我正在尝试使用Node.js创build一个Web应用程序。 我想使用socket.io来传输从soap服务中提取的数据。 我无法find关于此的任何信息。 什么是这种情况的最佳select。 马上: 我使用PHP来调用soap服务并检索数据。 我的客户端Java脚本使用AJAX对包含SOAP调用的PHP函数进行间隔调用(这是低效的,这就是为什么我想切换到socket.io设置)。 我想做什么: Node.js应用程序可能与高速 如果可能,使用PHP或Node.js进行SOAP调用。 从SOAP到客户端的数据stream使用socket.io进行查看 我不知道如果这个设置是可能的,我还没有find和良好的文档。 这可能吗? 如果是这样,那么最好的方法是什么,或者有一个教程呢?