我几天前刚开始尝试node.js.我已经意识到只要我的程序中有未处理的异常,Node就会终止.这与我所暴露的普通服务器容器不同,只有当未处理的异常发生且容器仍然能够接收请求时,工作线程才会死亡.这引出了一些问题:
process.on('uncaughtException')防范它的唯一有效方法吗?process.on('uncaughtException')在异步进程执行期间是否会捕获未处理的异常?我将非常感谢任何指针/文章,它将向我展示在node.js中处理未捕获的异常的常见最佳实践
我在这里给出的指令上安装了ubuntu上的nodejs
当我node --version在终端写信时,我看到了这个:
-bash: /usr/sbin/node: No such file or directory
不过,我可以在/usr/sbin/目录中看到节点.
写作npm --version表明1.3.5
写作nodejs --version表演v0.10.15
另外,我可以在/usr/bin/目录中看到节点.
那么,我该如何node工作?
此外,如果我使用zsh而不是bash,那么node命令工作.
node.js是否有任何现有的用户身份验证库?特别是我正在寻找可以为用户进行密码身份验证的东西(使用自定义后端身份验证数据库),并将该用户与会话相关联.
在我写一个auth库之前,我想我会看看人们是否知道现有的库.通过谷歌搜索找不到任何明显的东西.
-Shreyas
我最近注意到,Web上的很多JavaScript文件都是;紧跟在评论部分之后开始的.
例如,这个jQuery插件的代码以:
/**
* jQuery.ScrollTo
* Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* Date: 9/11/2008
.... skipping several lines for brevity...
*
* @desc Scroll on both axes, to different values
* @example $('div').scrollTo( { top: 300, left:'+=200' }, { axis:'xy', offset:-20 } );
*/
;(function( $ ){
Run Code Online (Sandbox Code Playgroud)
为什么文件需要以;?开头?我也在服务器端JavaScript文件中看到了这种约定.
这样做的优点和缺点是什么?
我已经开始修补Node.js HTTP服务器,并且非常喜欢编写服务器端Javascript,但有些东西阻止我开始使用Node.js作为我的Web应用程序.
我理解整个异步I/O概念,但我有点担心程序代码非常CPU密集的边缘情况,例如图像处理或排序大数据集.
据我了解,服务器对于简单的网页请求非常快,例如查看用户列表或查看博客帖子.但是,如果我想编写非常CPU密集型代码(例如在管理员后端)生成图形或调整数千个图像的大小,请求将非常慢(几秒钟).由于此代码不是异步的,因此在几秒钟内发送到服务器的每个请求都将被阻止,直到我的慢请求完成为止.
一个建议是使用Web Workers进行CPU密集型任务.但是,我担心网络工作者会很难编写干净的代码,因为它的工作原理是包含一个单独的JS文件.如果CPU密集型代码位于对象的方法中该怎么办?为每个CPU密集型方法编写一个JS文件真是太糟糕了.
另一个建议是生成子进程,但这使得代码更难以维护.
有什么建议可以克服这个(感知的)障碍吗?如何使用Node.js编写干净的面向对象代码,同时确保CPU重任务执行异步?
可能重复:
如何决定何时使用Node.js?
对不起,如果我有点模棱两可,但我想了解使用Node.js而不是其他服务器端语言的真正优势.
我是一个JavaScript爱好者,所以我可能会玩Node.js,但我想知道我是否应该在我的项目中使用它.
在服务器端Javascript引擎的上下文中,什么是非阻塞I/O或异步I/O?我认为这被提到是优于Java服务器端实现的优势.
我想一旦它被执行了它就在队列中,但在队列中是否有任何保证它会在X毫秒后完全调用?或者队列中其他较重的任务会延迟吗?
知道如何在node.js应用程序上防止XSS攻击?在那里处理删除hrefs中的javascript,onclick属性等的任何lib.从POSTed数据?
我不想为所有那些写一个正则表达式:)
有什么建议?
我有一个宠物项目是一个在线游戏,整个游戏引擎是用C#编写的,我想知道是否有任何我可以从使用Node.JS构建的解决方案中调用这个现有程序集(.dll)的功能. ,Socket.IO,Express等?
游戏引擎本身非常完整; 经过测试和强大 我希望有一些巧妙的方式来暴露它的功能,而不需要太多的开销.
更新:
为了回答我自己的问题..我已经结束了构建自己的Web套接字服务器(基于最新的Web套接字协议文档).它是用C#编写的,并使用Mono编译,因此它可以托管在运行单声道的Linux机器上,因此(通过一些调整)我可以使用我现有的游戏引擎.
更新2 一个完全符合我原本想要的项目现在存在 - http://tjanczuk.github.io/edge/#/
node.js ×9
javascript ×5
asynchronous ×1
c# ×1
edge.js ×1
jquery ×1
nonblocking ×1
server-side ×1
ubuntu ×1
web-worker ×1
xss ×1