Node.js的用法 - 它的目标是提供一个斜坡?

cll*_*pse 7 node.js

我正试图让我的头围绕Node适合的地方.这是利基,所以说...... Node的目标是提供什么样的障碍?

我已经阅读了这些示例,并看了一些演示视频.而且它看起来都非常光滑......创建一个简单的Web服务器; 创建一个简单的TCP/IP聊天服务器; 使用Node作为数据库服务器的基于JSON的前端...但它适合哪里?我的意思是,除了最后一个例子,与Node有什么关系?

我想我要问的是:你会使用Node做什么?为什么?

Ray*_*nos 14

说服老板

使用节点的原因列表:

  • 速度.V8很快.它比python快,它比php更快.
  • 平分IO.IO做得很好.没有搞乱线程,一切都很好,很容易.
  • 低级Web服务器.在动态语言中很好地控制抽象.
  • JavaScript的.一种很棒的语言,有很多开发人员编写异步代码的经验.开发速度快,维护也很可爱,因为一切都可以用一种语言(客户端,服务器端,数据库访问)完成.

可以与node.js一起使用的库和工具:

  • express.js:MVC Web框架.很轻巧.为您提供路由和视图.构建connect.js的ontop.开箱即用,支持多个css和模板引擎的视图和路径的灵活控制.与node.js本身一样,它简单易用,可以为您的Web服务器提供精细的控制.就个人而言,我发现控制和抽象之间的平衡是正确的.
  • socket.io:事实上的websocket抽象.很多优雅的降级支持都是在没有websocket使用彗星技术或闪存桥的浏览器中构建的.允许您以一种轻松,实时的方式在客户端和服务器之间进行通信.
  • now.js:构建在socket.io之上,并为您提供跨客户端和服务器的同步名称空间.允许您从客户端轻松调用服务器方法,反之亦然.

所有这些库都基于以下事实:node.js允许您以低级方式处理所有内容,并且与客户端的通信流畅且简化,因为您在任一端使用相同的语言.

对我而言,卖点是我在客户端和服务器上拥有相同的MVC库backbone.js.我的所有型号代码都被重复使用.客户端和服务器上的模型在now.js上进行了简单的同步.

我的数据库访问是由cradle(或mongoose)驱动的,它都是用JavaScript编写的.实际上我的MVC直接绑定到数据库并无缝地保存我的模型.该模型定义了一个有用的方法,如savefetch做持久数据库存储.我没有手动触摸数据库,因为我的MVC允许我插入数据库驱动程序为我这样做.

我的模板的渲染是用EJS完成的,我的视图在客户端和服务器之间共享.只需要大量的代码重用,我的整个Web开发都是用JavaScript完成的,这意味着我不必切换编码范例或样式.

我也无法决定如何处理服务器上的内容和客户端上的内容之间的灰色区域,因为灰色区域已经完全平滑,客户端和服务器无缝集成.

如果您要编写复杂的动态ajax Web应用程序,那么node.js是一个完美的候选者.如果你想要一个静态网站,那么node.js是一个完美的候选者(你在20分钟内设置它).

如果你要编写一个服务器很重的网站,它具有很少的客户端功能和回发,那么你可能最好使用php或ASP.NET.但是如果你这样做,你应该研究更动态的客户端功能并使用ajax.

  • @Mark我没有提出这个说法.generalhenry做了.我说你可以自然地编写异步代码. (2认同)