小编gen*_*nry的帖子

在Node.js中等待多个回调的惯用方法

假设您需要执行一些依赖于某些临时文件的操作.由于我们在这里谈论Node,这些操作显然是异步的.为了知道何时可以删除临时文件,等待所有操作完成的惯用方法是什么?

这是一些显示我想要做的代码:

do_something(tmp_file_name, function(err) {});
do_something_other(tmp_file_name, function(err) {});
fs.unlink(tmp_file_name);
Run Code Online (Sandbox Code Playgroud)

但是如果我这样写,第三次调用可以在前两次有机会使用该文件之前执行.我需要一些方法来保证前两个调用已经完成(调用它们的回调),然后继续运行而不嵌套调用(并使它们在实践中同步).

我想过在回调上使用事件发射器并将计数器注册为接收器.计数器将接收已完成的事件并计算仍有待处理的操作数.当最后一个完成时,它将删除该文件.但是存在竞争条件的风险,我不确定这通常是怎么做的.

Node人如何解决这类问题?

node.js

98
推荐指数
5
解决办法
5万
查看次数

获取范围的开始和结束偏移量相对于其父容器

假设我有这个HTML元素:

<div id="parent">
 Hello everyone! <a>This is my home page</a>
 <p>Bye!</p>
</div>
Run Code Online (Sandbox Code Playgroud)

用户用鼠标选择"家".

我希望能够确定#parent他的选择中有多少个字符开始(以及#parent他选择结束时有多少个字符结束).即使他选择了HTML标记,这也应该有效.(我需要它在所有浏览器中工作)

range.startOffset 看起来很有希望,但它只是相对于范围的直接容器的偏移量,并且仅当容器是文本节点时才是字符偏移量.

javascript textrange

66
推荐指数
3
解决办法
6万
查看次数

监视node.js服务器

我正在寻找一种从node.js服务器实例中获取某种监控,统计或管理数据的方法 - 不确定要搜索什么或从哪里开始.任何建议表示赞赏

统计数据将是处理的请求(如果适用) - 连接数量等.

node.js

36
推荐指数
2
解决办法
4万
查看次数

帮助在jade express中显示变量

我正在尝试使用res渲染加载一些变量:

res.render('blog_edit', {title: 'edit your blog', posts: "something"});
Run Code Online (Sandbox Code Playgroud)

虽然标题加载精细帖子总是显示为未定义...这里是我试过的一些方法...

=posts

#{posts}
Run Code Online (Sandbox Code Playgroud)

并作为一个javascript变量

script   
   document.write(posts)
Run Code Online (Sandbox Code Playgroud)

他们都没有工作......你能帮忙吗?提前致谢

javascript node.js pug

16
推荐指数
2
解决办法
4万
查看次数

使用node.js HTTP远程客户端请求不返回任何正文

我正在使用node.js下载网页.但是,它没有收到任何数据块:

    console.log('preparing request to ' + url)
    u = require('url').parse(url)
    var remote_client = http.createClient(80, u['host']);
    var request = remote_client.request("GET", u['pathname'], {"host": u['host']});
    console.log("request made")

    request.addListener('response', function (response) {
        response.setEncoding('binary') 
        var body = '';

        response.addListener('data', function (chunk) {
            body += chunk;
            console.log('chunk received')
        });
    });
Run Code Online (Sandbox Code Playgroud)

最后一个控制台消息是"请求发出".没有"收到块"等的控制台消息.思考?

node.js

15
推荐指数
1
解决办法
1万
查看次数

Node.js http请求管道传输

所以,我想使用node.js和http请求流水线,但我想只使用HTTP作为传输,没有别的.我有兴趣利用请求流水线功能.但是,我遇到的一个问题是,在发送对先前请求的响应之前,节点不会触发下一个请求的回调.我想要一种能够做到这一点的方法.我将在应用程序中处理结果的排序.有没有办法做到这一点?

HTTP RFC提到响应应该按顺序排列,但我没有看到node.js在第一个响应之前没有调用下一个回调的任何原因.理论上,应用程序可以将响应发送到第二个查询作为对第一个查询的响应(只要有一些方法让接收者知道它是对第二个查询的响应).

http pipelining node.js

9
推荐指数
1
解决办法
3396
查看次数

node.js调用文件的任何位置都有意外的标识符

我正在写在node.js中的应用,最近我对我所有的项目意外错误.

当我尝试在浏览器中调用模型时,我总是得到一个

SyntaxError: Unexpected identifier

在我的代码中调用的任何函数.

例如,如果我继续"/ session/new",

我的代码是:

app.get('/session/new',function (req,res) {
    res.render('sessions/new',{locals:{
        redir:req.query.redir
    }});
});
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

SyntaxError: Unexpected identifier
at Object.Function (unknown source)
at Object.render (/usr/local/lib/node/.npm/jade/0.6.3/package/lib/jade.js:267:14)
at ServerResponse.render (/usr/local/lib/node/.npm/express/1.0.7/package/lib/express/view.js:334:22)
at ServerResponse.render (/usr/local/lib/node/.npm/express/1.0.7/package/lib/express/view.js:344:10)
at Object.<anonymous> (/Users/geraudmathe/Desktop/nodemongo/app.js:133:6)
at param (/usr/local/lib/node/.npm/connect/0.5.2/package/lib/connect/middleware/router.js:145:21)
at pass (/usr/local/lib/node/.npm/connect/0.5.2/package/lib/connect/middleware/router.js:161:10)
at Object.router [as handle] (/usr/local/lib/node/.npm/connect/0.5.2/package/lib/connect/middleware/router.js:167:6)
at next (/usr/local/lib/node/.npm/connect/0.5.2/package/lib/connect/index.js:232:23)
at next (/usr/local/lib/node/.npm/connect/0.5.2/package/lib/connect/index.js:234:17)
Run Code Online (Sandbox Code Playgroud)

其中/nodemongo/app.js:133:6在我的代码中是res.render.

无论我拨打什么代码,它都会发生.

我迷路了 ...

node.js pug

7
推荐指数
1
解决办法
1万
查看次数

Expressjs到生产

我是expressjs的新手,我想将一个expressjs应用程序部署到生产中.基于我的谷歌搜索,这是我在想的机架空间设置:

1负载均衡器+ 2服务器+永远运行应用程序

我的问题是:

  1. 我应该使用什么引擎来运行应用程序?nginx的?

  2. 我可以为每台服务器运行多少个app?

谢谢.

nginx node.js express

7
推荐指数
1
解决办法
2720
查看次数

JS库为浏览器和nodejs环境提供简单的实用程序?

我正在寻找一个javascript库,试图在浏览器环境和nodejs(迭代,映射,可能是控制流)中提供相同的简单实用程序,以便可以更容易地跨服务器和客户端重用代码.我知道你可以破解任何JS库(YUI,jQuery,...)的部分并让它们在两个环境中工作,我只是想知道它是否已经完成或标准化.

我见过的最接近的是:https://github.com/kof/sharedjs

但它不完整,有一些奇怪的东西.我想知道在我分叉和黑客之前是否有更多的东西.

javascript client-server node.js

5
推荐指数
1
解决办法
415
查看次数

使用connect-auth持久登录

我正在构建一个node.js并使用connect-auth进行用户/通过身份验证,而我想要做的是允许用户长时间登录.玩游戏并查看源代码似乎connect-auth依赖于连接会话来维护经过身份验证的状态,因此一旦会话cookie过期(默认4小时),用户就会被注销.

一种选择是fork connect-auth和refactor不依赖于req.session,但这是非平凡的.另一种选择是将会话cookie的默认年龄更改为非常高,但我希望我的会话对象能够在会话中死亡.

有人有什么建议吗?我忽略了现有的解决方案吗?

谢谢!

authentication node.js

5
推荐指数
1
解决办法
1725
查看次数