node js是js的一个运行环境, 实际上是对goole的V8引擎进行了封装。
v8引擎对js的执行速度非常快、性能非常好。
node js对一些特殊用例进行了优化 提供了替代的api,使得V8引擎在非浏览器环境下运行的更好。
node js是一个基于chrome js运行时建立的平台,用于方便的搭建响应速度快,易于扩展的网络应用。node js使用事件驱动、
非阻塞的io模型而得以轻量和高效、非常适合在分布式设备上运行数据密集型的实施应用。
node js的优点
1、单线程
2、非堵塞的I/o
3、V8虚拟机
4、事件驱动
hello word的输出
1、REPL(测试)
2、写成独立的js文件 首先进入到该目录 执行 node ***.js
nodejs的程序编写 遵循common.js的规范
Common.js定义的模块分为:模块引用(require)模块定义
(exports) 模块标识(module)
var module=require("./模块名");
模块名的.js可以省略
module 引入模块的对象 可以调用在exports中被抛出(exports)中的方法
自定义模块在引入是一定要加上路径(./ ../等)路径可以
是相对路径(推荐) 也可以是绝对路径
也就是说在定义模块时不exports的方法 再引入该模块时是没有办法被调用的
三:编写稍大一点的程序时一般都会将代码模块化。
在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名。
在node js中一共有三种模块
1、核心模块(内置模块) http(creaeSevver) fs url querystring
2、第三方模块 系统没有提供,但是又需要实现功能 下载别人写的模块
3、自定义模块 自己写
搭建web服务器 用的模块 http
本机 ip 127.0.0.1
127.0.0.1:8888
路径的解析规则
1.核心模块(内置模块)不需要写路径 直接加载
2.普通模块如果不写路径 规则 1.通过node_modules 现在本目录找 如果目录没有 依次找上一级
2.通过配置环境变量 NODE_PATH 如果没有直接到该目录找
json是一种轻量级的数据交换格式 有两种基本结构:1.数组和 对象
[{},{},{}] {"key":[],"key":[],"key":[]}
1、什么是包?
package
由多个子模块组成的大模块称为包。
每个包都有一个入口模块如果入口模块是index.js那么引入包的时候可以直接写包名 省略入口模块名
如果入口模块不叫index.js,而且每个子模块都放在目录libs中需要在包中新建package.json
{"name":","main":"}
name:包名 main:路径名
package.json的作用::自定义入口模块和存放位置,
2、什么是npm? npm的作用
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,
可以下载第三方 和 将自己编写的第三包上传
下载(需要进入当前的目录) npm install 包名
如果下载指定版本的第三方包 需要npm install 包名@版本号
npm help 查看npm所有命令
发布 npm publish 包名
使用npm help可查看某条命令的详情帮助,例如npm help inatall.使用npm Update 包名 可以把当前目录下node_modules 子目录里边的对应模块更新最新版本全局安装 npm install 包名 -g更新全局安装 npm update 包名 -g使用npm Unpublish@可以撤销发布自己发布过的某个代码