nodejs学习

简介

Node.js是一个使用javascript语言,运行在google v8引擎上的,事件驱动的异步框架。因为它使用的是javascript,所以学习nodejs的过程也是一个学习js的过程。

     Node.js是基于事件的,它底层的一个类是EventEmitter,node很多的类都是扩展于它,EventEmitter有个emit方法可以发送各种,然后我们通过监听机制来响应。在js中来说一般都是一个function的回调。

一个典型的例子:


  这个就是大致的node风格,事件监听和方法回调。 在类unix下,使用epoll的事件机制保障了node的性能。

安装

Node.js 在linux系统上的安装是比较方便的,对于windows来说过程有可能有些曲折,不过这些官网都有介绍。我的系统是arch,所以安装起来就只需要一个命令  
      sudo pacman -S nodejs
      这样最基础的环境就搭建好了,提供了一个node的命令出来,类似于安装了jdk之后的java命令,运行node就能进入



      此外我们还需要安装一个node的包管理器npm,类似于java的maven,安装起来也非常方便,在控制台输入:
      
   curl http://npmjs.org/install.sh | sudo sh

  这样以后我们就可以通过npm install 来安装其他的3方库了,还是非常方便的。nodejs的包可以分为全局的和私有的,全局的默认位于/usr/lib/node_modules,私有的位于项目目录的 node_modules文件夹下,node在运行时通过require命令就会去这些目录下查找对应的包了。


    

使用node.js的一个简单的httpserver

    这里启动了一个进程来监听8124端口,把请求转发到匿名方法里进行处理,代码非常简单。 js通过方法回调来实现多线程处理

cluster

 对于现在的多核cpu来说,单个进程明显是不能接受的。幸好nodejs也提供了这个模块 cluster
   对于我的双核cpu来说就启动了一个主进程和2个处理进程。 好像和nginx的work进程有点类似。

express

 

   express是nodejs中最流行的web框架,它是基于connect框架的,使用起来也非常简单。
   首先安装:sudo npm install -g express
          然后:express /tmp/foo && cd /tmp/foo
          最后:node app.js
     这样一个最简单的express骨架项目就跑起来了,有点rails的风格吧。

抛开骨架再看下最简单的express的使用:

这里使用了模版引擎和路由。



       



你可能感兴趣的:(nodejs)