Tag: node.js

与承诺循环

用承诺做一个while循环的习惯用法是什么? 所以: 如果情况仍然存在,请做一些事情再重复一遍,然后做一些其他的事情。 dosomething.then(possilblydomoresomethings).then(finish) 我这样做,我想知道是否有更好的/更多的idomatic方法? var q = require('q'); var index = 1; var useless = function(){ var currentIndex = index; console.log(currentIndex) var deferred = q.defer(); setTimeout(function(){ if(currentIndex > 10) deferred.resolve(false); else deferred.resolve(true); },500); return deferred.promise; } var control = function(cont){ var deferred = q.defer(); if(cont){ index = index + 1; useless().then(control).then(function(){ deferred.resolve(); }); } […]

要求返回一个空的对象

我有一个文件夹,它有index.js和一些模型(类)index.js module.exports = { Book : require('./book'), Author : require('./author') } book.js var Author = require('./author') var Book = models.ActiveRecord.extend({ schema : { belongsTo : { author : Author } } }) module.exports = Book author.js var Book = require('./book') var Author = models.ActiveRecord.extend({ schema : { hasMany : { author : Book } } […]

“npmconfiguration设置registryhttps://registry.npmjs.org/”不在Windows bat文件中工作

我在windows 7上创builda.bat,a.bat的内容是: @echo off npm config set registry https://registry.npmjs.org/ 然后运行a.bat,但不工作,我发现“set”这个词是npm和bat的特殊关键字,是否有任何方法可以解决这个问题?

为什么node.js一次只处理六个请求?

我们有一个node.js服务器,它实现了一个REST API作为一个中央服务器的代理,这个服务器有一个稍微不同的,不幸的是不对称的REST API。 我们的客户端运行在各种浏览器中,要求节点服务器从中央服务器获取任务。 节点服务器从中央服务器获得所有任务ID的列表并将其返回给客户端。 然后,客户端通过代理为每个ID创build两个REST API调用。 据我所知,这些东西都是asynchronous完成的。 在控制台日志中,当我启动客户端时,它看起来像这样: Requested GET URL under /api/v1/tasks/*: /api/v1/tasks/ 这需要几秒钟才能从中央服务器获取列表。 一旦得到响应,服务器就会很快地把这个消息发送出去: Requested GET URL under /api/v1/tasks/id/:id :/api/v1/tasks/id/438 Requested GET URL under /api/v1/workflow/id/:id :/api/v1/workflow/id/438 Requested GET URL under /api/v1/tasks/id/:id :/api/v1/tasks/id/439 Requested GET URL under /api/v1/workflow/id/:id :/api/v1/workflow/id/439 Requested GET URL under /api/v1/tasks/id/:id :/api/v1/tasks/id/441 Requested GET URL under /api/v1/workflow/id/:id :/api/v1/workflow/id/441 然后,每当有一对这样的请求得到中央服务器的结果时,另外两条线就会很快地被删除。 所以看来我们的node.js服务器只愿意一次发出六个请求。

在Jade中创build内联元素的简明方法是什么?

我喜欢将所有内联元素放在一行中。 <ul> <li><a>click<span>here</span><strong>!</strong></a></li> 想知道是否有更好的方式在Jade中创build内联元素: ul li a(href="#") click span here strong ! 这有点接近,但我不知道如何添加跨度和强大的标签没有断线。 ul li: a(href='#') click span … 这显然不是一个超级大的问题,但有点烦人,我不能把内联元素内联。 谢谢您的帮助

node.js多房间聊天的例子

我正在寻找一个支持多个房间的websocket / node.js聊天实现。 我也将写一个需要多个房间或服务器的应用程序,我只是在寻找一些人们如何做的代码示例。 谢谢。 我知道有一个服务http://pusherapp.com提供这项服务,但我正在寻找一个开源的例子。

grunt“test command”在npm init上做了什么?

我正在努力学习咕噜声。 当我运行npm init时,在创build一个package.json文件的过程中,我得到一个提示,要求input“test command” – 我不知道如何利用它,或者期望什么。 这似乎没有很好的文件。 如果我把它留空,我在得到的package.json文件中得到这个: "scripts": { //"test": "echo \"Error: no test specified\" && exit 1" }, 任何人都可以阐明如何设置testing脚本?

ReactJS服务器端渲染与客户端渲染

我刚开始学习ReactJS,发现它给了你两种呈现页面的方式:服务器端和客户端。 但是,我不明白如何一起使用它。 是build立应用程序的两种不同的方式,还是可以一起使用? 如果我们可以一起使用,那么我们需要在服务器端和客户端复制相同的元素吗? 或者,我们可以在服务器上构build应用程序的静态部分,还是在客户端上构builddynamic部分,而无需连接到已经预渲染的服务器端?

访问客户端JavaScript中的Express.js局部variables

好奇,如果我这样做是正确的,如果不是你们如何处理这个问题。 我有一个Jade模板需要呈现从MongoDB数据库检索到的一些数据,我也需要访问客户端JavaScript文件中的数据。 我正在使用Express.js并将数据发送到Jade模板,如下所示: var myMongoDbObject = {name : 'stephen'}; res.render('home', { locals: { data : myMongoDbObject } }); 然后在home.jade里面,我可以做这样的事情: p Hello #{data.name}! 其中写道: Hello stephen! 现在我想要的是也可以访问客户端JS文件中的这个数据对象,所以我可以操纵对象说一个button,然后将其返回到服务器来更新数据库。 我已经能够通过在Jade模板的隐藏input字段中保存“data”对象,然后在我的客户端JS文件中获取该字段的值来实现这一点。 在home.jade里面 – local_data = JSON.stringify(data) // data coming in from Express.js input(type='hidden', value=local_data)#myLocalDataObj 然后在我的客户端JS文件我可以像这样访问local_data: 在myLocalFile.js里面 var localObj = JSON.parse($("#myLocalDataObj").val()); console.log(localObj.name); 然而,这个string化/parsing业务感觉混乱。 我知道我可以将我的数据对象的值绑定到我的Jade模板中的DOM对象,然后使用jQuery获取这些值,但是我希望能够访问从客户端JS中快速返回的实际对象。 我的解决scheme是最佳的,你们将如何实现这一目标?

gruntjs服务器任务的目的是什么?

我正在学习如何推动使用gruntjs。 我发现服务器的任务,但我不明白的地步。 我可以使用服务器任务映射级联/缩小文件来testing我的应用程序(使用backbone.js)而不移动或将源文件放在Web服务器根目录中? 没有Apache例如。 如果不是,那么服务器任务应该使用什么?