NodeJs安装与使用入门
一、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.
- 它是一个Javascript运行环境
- 依赖于Chrome V8引擎进行代码解释
- 事件驱动
- 非阻塞I/O(NodeJS遇到I/O事件会创建一个线程去执行,然后主线程会继续往下执行的)
- 轻量、可伸缩,适于实时数据交互应用
- 单进程,单线程
二、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安装与使用入门的更多相关文章
- nodejs安装:nodejs入门
nodejs开篇 前几天看到好多关于node 的帖子没有单独说明node安装的文章~ 特发此篇 总结一下平时在windows上nodejs的安装... 1.js来搞前后端分离是nodejs的一大特点, ...
- Windows系统下nodejs安装及配置
关于nodejs中文站,眼下活跃度最好的知识站应该是http://www.cnodejs.org/ ,而http://cnodejs.org/则活跃度较低.Express.js是nodejs的一个MV ...
- 使用nodeJs安装Vue-cli
TIP:win10下安装,使用管理员身份进行,否则会有权限限制. 1,安装完成node,node有自带的npm,可以直接在cmd中,找到nodeJs安装的路径下,进行命令行全局安装vue-cli.(n ...
- nodejs学习笔记一——nodejs安装
a.nodejs安装 nodejs的安装没有什么说的默认安装即可.安装包官网下载即可:nodejs官网 本人用的是window的安装包node-v4.2.6-x64.msi 安装完成后打开命令行查看使 ...
- windows下的NodeJS安装
1.登录官网 http://nodejs.org ,install 下载安装包.. 2.安装过程基本直接“NEXT”就可以了. 3.安装完成后可以使用cmd(win+r然后输入cmd进入)测试下是否安 ...
- 四步完成NodeJS安装,配置和测试
四步完成NodeJS安装,配置和测试 NodeJS 官网地址: http://nodejs.org/ 第一步:在官网点击 ’ INSTALL ’,下载相应的版本(我的机器是Win7专业版 64bit) ...
- sass、less和stylus的安装使用和入门实践
刚 开始的时候,说实话,我很反感使用css预处理器这种新玩意的,因为其中涉及到了编程的东西,私以为很复杂,而且考虑到项目不是一天能够完成的,也很少是 一个人完成的,对于这种团队的项目开发,前端实践用c ...
- linux系统下nodejs安装过程随记
首先下载适合的版本.这里我使用的是node v.10.36 先介绍编译安装的详细过程. 下载该版本: wget http://nodejs.org/dist/v0.10.36/node-v0.10.3 ...
- Linux上安装使用boost入门指导
Data Mining Linux上安装使用boost入门指导 获得boost boost分布 只需要头文件的库 使用boost建立一个简单的程序 准备使用boost二进制文件库 把你的程序链接到bo ...
随机推荐
- RSA体系 c++/java相互进行加签验签--转
在web开发中,采用RSA公钥密钥体系自制ukey,文件证书登陆时,普遍的做法为:在浏览器端采用c++ activex控件,使用 c++的第三库openssl进行RAS加签操作,在服务器端采用java ...
- RunTime 应用实例–关于埋点的思考
埋点是现在很多App中都需要用到的,这个问题可能每个人都能处理,但是怎样来减少埋点所带来的侵入性,怎样用更加简洁的方式来处理埋点问题,怎样减少误埋,如果上线了发现少埋了怎么办?下面是本文讨论的重点: ...
- Java基础知识强化之集合框架笔记10:Collection集合使用的步骤
集合使用的步骤: (1)创建集合对象 (2)创建元素对象 (3)把元素添加到集合 (4)遍历集合: • 通过集合对象获取迭代器对象 • 通过迭代器对象的hasnext()方法判断是否有元素 ...
- ASP.NET-FineUI开发实践-11
我用实例项目写了个子父页面传值,算是比较灵活的写法,可以把js提取出来写成包,然后调用,我先一步一步写,为有困难的朋友打个样. 先画个页面: 上面是个查询用的表单,底下是表格,内存分页,用到了VBox ...
- HDU5289
题意:求解存在最大差值小于给定K值的所有区间段. 输入: T(测试数据) n(数组个数)K(给定区间值的范围) ai...(数组值) 输出: ss(所有满足符合条件的区间段) 思路:二分+ST算法,首 ...
- Asp.Net中的session配置
一.InProc模式(缺省模式) <sessionState mode="InProc" timeout="20"></sessionStat ...
- java中的IO一
一.IO操作的目标 IO的流向 二.IO的分类方法 1.第一种分法:输入流.输出流 2.第二种分法:字节流.字符流 3.第三种分法:节点流.处理流 三.IO当中的核心类 核心类中的核心方法 Input ...
- Android打开系统的Document文档图片选择
打开Document UI 过滤图片 private void startAcitivty() { Intent intent = new Intent(); intent.setAction(&qu ...
- iOS9中将图片保存到照片中的某个相册的方法说明
iOS9中将图片保存到照片中的某个相册的方法说明 在App中很经常遇到的就是用户点击某张图片后将图片保存到本地,下面介绍下iOS中保存图片的一些东西 1.首先,在iOS中把图片保存到系统照片是比较简单 ...
- 基于GBT28181:SIP协议组件开发-----------第一篇环境搭建
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3930018.html,qq:1269122125. SIP协议在安 ...