一、NodeJs简介

  NodeJS官网上的介绍:

  Node.js is a platform built on  Chrome's JavaScript runtime  for easily building fast, scalable network applications. Node.js   uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time   applications that run across distributed devices.

  1. 它是一个Javascript运行环境
  2. 依赖于Chrome V8引擎进行代码解释
  3. 事件驱动
  4. 非阻塞I/O(NodeJS遇到I/O事件会创建一个线程去执行,然后主线程会继续往下执行的)
  5. 轻量、可伸缩,适于实时数据交互应用
  6. 单进程,单线程

二、NodeJs优缺点

NodeJS适合运用在高并发、I/O密集、少量业务逻辑的场景(高并发、聊天、实时消息推送

1)优点:

  1. 高并发(最重要的优点)

     NodeJs更改连接到服务器的方式,每个连接发射(emit)一个在NodeJS引擎进程中运行的事件(Event),放进事件队列当中,而不是为每个连接生成一个新的OS线程(并为其分配一些配套内存))

  2. 适合I/O密集型应用

2)缺点:

  1. 不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大循  环),将会导致CPU时间片不能释放,使得后续I/O无法发起;

    解决方案:分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起;

  2. 只支持单核CPU,不能充分利用CPU

  3. 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃(原因:单进程,单线程)

    解决方案:(1)Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;

         (2)开多个进程监听同一个端口,使用cluster模块;

  4. Debug不方便,错误没有stack trace

三、NodeJs安装

  下载地址:http://nodejs.org

  安装:直接运行

  查看安装版本: node -v

四、helloworld测试

1.在Node.js安装目录中新建一个文件helloworld.js,内容如下:

console.log('HelloWorld');

2.控制台中,进入nodejs目录, 输入指令: node hello.js

控制台输出: HelloWorld

五、浏览器访问测试

1.说明:需设定端口和http参数信息

2.例子如下:

1)nodejs安装目录下创建http.js文件

var http = require('http');
http.createServer(function(request, response){
response.writeHead(200,{'Content-Type':'text/html'});
response.write('HelloWorld');
response.end() }).listen(8000);

2)在命令行中启动服务,敲 node  http.js

3)浏览器中输入 http://localhost:8080/ ,页面输出HelloWorld

六、使用hotnode热发布(自动更新脚本)

1)说明:如果使用章节5中的 node http.js方式发布,则更改http.js后需要ctrc+c终止,再重新发布,使用hotnode则可以实现热发布,有更改时不用重新启动

2)使用方法

1. npm -g install hotnode  安装hotnode,可使用hotnode -v 产看hotnode版本

2. 启动时使用 hotnode http.js,像章节5中的例子,更改reponse内容后直接在浏览器中刷新页面即可

  3. 每更新一次,hotnode会打印两条记录,  has been changed 和 node process restarted,如下所示:

七、NodeJs模块载入

1)说明:1.NodeJs可以通过模块的名称或者模块的路径获取模块的引用。

      2. 内置模块(core model)在node进程开始时就已经预加载了,如http模块

      3. 非内置模块,模块的引用会映射到一个js文件

2) 模块载入:使用var model = require('modelName');

      1.执行require语句后,如果是内置模块,在node内部会载入内置模块

      2.如果不是内置模块,则会通过npm安装模块

      3. require返回的对象可以是任意类型的JS对象

3)载入文件模块

     1.路径可以是绝对路劲,也可以是相对路径

2..js可以省略

       3. 当前路劲需要加上./

var model = require('/asset/js/model.js');
var model = require('/asset/js/model');
var model = require('../asset/js/model');
var model = require('./main.js');

4)载入目录模块

      1.载入方式如下:

var model = require('../folderName');

     2.如果文件夹中没有定义package.json文件则默认会加载index.js文件

     3.如果存在package.json文件,则加载package.js中定义的文件,package.json中定义格式如下:

{
name:'pack';
main: 'modelName.js';
}

     4.如果package.json文件和index.js文件都不存在,则会加载失败。

5)如果模块名不是内置模块,不是路劲,不是文件夹,node则试图从当前目录中的node_modules文件夹中搜索,找不到结果则往上一级目录,直至根目录

八、npm常用指令(node package manager)

1) 安装Node模块  —— $ npm install moduleNames

2) 查看当前目录下已安装的node包  ——$ npm list

3) 查看node模块的package.json文件夹——$ npm view moduleNames

4) 查看包的依赖关系 ——$ npm view moduleName repository.url

5)  查看包所依赖的Node的版本 ——$ npm view moduleName engines

6) 更新node模块 ——$ npm update moduleName

7) 卸载node模块 ——$ npm uninstall moudleName

   

参考:http://home.cnblogs.com/u/snandy/

NodeJs安装与使用入门的更多相关文章

  1. nodejs安装:nodejs入门

    nodejs开篇 前几天看到好多关于node 的帖子没有单独说明node安装的文章~ 特发此篇 总结一下平时在windows上nodejs的安装... 1.js来搞前后端分离是nodejs的一大特点, ...

  2. Windows系统下nodejs安装及配置

    关于nodejs中文站,眼下活跃度最好的知识站应该是http://www.cnodejs.org/ ,而http://cnodejs.org/则活跃度较低.Express.js是nodejs的一个MV ...

  3. 使用nodeJs安装Vue-cli

    TIP:win10下安装,使用管理员身份进行,否则会有权限限制. 1,安装完成node,node有自带的npm,可以直接在cmd中,找到nodeJs安装的路径下,进行命令行全局安装vue-cli.(n ...

  4. nodejs学习笔记一——nodejs安装

    a.nodejs安装 nodejs的安装没有什么说的默认安装即可.安装包官网下载即可:nodejs官网 本人用的是window的安装包node-v4.2.6-x64.msi 安装完成后打开命令行查看使 ...

  5. windows下的NodeJS安装

    1.登录官网 http://nodejs.org ,install 下载安装包.. 2.安装过程基本直接“NEXT”就可以了. 3.安装完成后可以使用cmd(win+r然后输入cmd进入)测试下是否安 ...

  6. 四步完成NodeJS安装,配置和测试

    四步完成NodeJS安装,配置和测试 NodeJS 官网地址: http://nodejs.org/ 第一步:在官网点击 ’ INSTALL ’,下载相应的版本(我的机器是Win7专业版 64bit) ...

  7. sass、less和stylus的安装使用和入门实践

    刚 开始的时候,说实话,我很反感使用css预处理器这种新玩意的,因为其中涉及到了编程的东西,私以为很复杂,而且考虑到项目不是一天能够完成的,也很少是 一个人完成的,对于这种团队的项目开发,前端实践用c ...

  8. linux系统下nodejs安装过程随记

    首先下载适合的版本.这里我使用的是node v.10.36 先介绍编译安装的详细过程. 下载该版本: wget http://nodejs.org/dist/v0.10.36/node-v0.10.3 ...

  9. Linux上安装使用boost入门指导

    Data Mining Linux上安装使用boost入门指导 获得boost boost分布 只需要头文件的库 使用boost建立一个简单的程序 准备使用boost二进制文件库 把你的程序链接到bo ...

随机推荐

  1. android 窗体透明的,黑暗度等的设置技巧

    设置透明度(这是窗体本身的透明度,非背景) 1 WindowManager.LayoutParams lp=getWindow().getAttributes(); 2 lp.alpha=0.3f; ...

  2. InnoDB 数据表压缩原理与限制

    http://liuxin1982.blog.chinaunix.net/uid-24485075-id-3523032.html 压缩理念 通过提高CPU利用率和节约成本,降低数据库容量及I/O负载 ...

  3. Junit使用教程(一)

    几乎所有程序员都听说过Junit的大名,但不知真正懂得运用它的人有多少,我便是其中的一个小白. 知道Junit是用来测试的,但却把“宝刀”当成了“菜刀”用.为了从此不再菜鸟,特此总结整理了下Junit ...

  4. poj 1201 Interval (查分约束)

    /* 数组开大保平安. 查分约束: 输入的时候维护st和end 设每个点取元素di个 维护元素个数前缀和s Sbi-Sai-1>=ci 即:建立一条从ai-1到bi的边 权值为ci 表示ai到b ...

  5. msp

    10月8号加入了微软的msp项目,其实那时候对msp没有什么概念,不知道要干嘛,真的觉得大不了就退出呗,反正也没啥大事,   现在再也不那么看了,这二十多天虽然没怎么水群,但是还是一直在关注着我们这个 ...

  6. 转:android 自定义RadioButton样式

    http://gundumw100.iteye.com/blog/1146527  上面这种3选1的效果如何做呢?用代码写? 其实有更简单的办法,忘了RadioButton有什么特性了吗? 我就用Ra ...

  7. jQuery的live()方法对hover事件的处理示例

    hover([over,]out) 一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法 当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数. 当鼠标移出这个元素时,会触发指定的第二个 ...

  8. 昨天做了一个使用javamail发送文件的demo

    记录一下过程. 两种版本第一个demo是纯java文件.一个就可以,是我在网上搜索到的,第二个demo是我在ssh框中中写的jsp页面demo 1.java版本: package com.zq.www ...

  9. 【USACO 3.2.4】饲料调配

    [描述] 农夫约翰从来只用调配得最好的饲料来喂他的奶牛.饲料用三种原料调配成:大麦,燕麦和小麦.他知道自己的饲料精确的配比,在市场上是买不到这样的饲料的.他只好购买其他三种混合饲料(同样都由三种麦子组 ...

  10. win10开始菜单打不开的解决办法

    解决方法: 1.在Win10系统下按Win+R打开运行,输入services.msc回车打开服务: 2.在服务中找到User Manager服务;3.打开usermanager服务属性,将其启动类型设 ...