node介绍
- nodejs 是基chrome V8弓擎的javascript运行环境( runtime )
- Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。
- npm是nodej的包管理工具
node优点
- RESTful API
- 单线程
- Node可以在不新增额外线程的情况下,依然可以对任务进行并发处理一Node.js是 单线程的。它通过事件循环(eventloop)来实现并发操作,对此,我们应该要充分利用这一一点一尽可能的避免阻塞操作, 取而代之,多使用非阻塞操作。
- 非阻塞I0
- V8,虚拟机
- 事件驱动
node作用
多加了一层通讯,肯定会有一定的性能损耗。但分层带来的损失,- -定能在其他方面的收益弥补回来,而
且合理的分层能让职责清晰、方便协作,大大提升开发效率。也可以通过优化通讯方式和协议,尽可能把
损耗降到最低。
node特性
-
nodejs 运行速度快,性能非常好
v8是用c+实现,编译速度媲美进制语言,能够让计算机快速编译识别
-
异步I/O ;
I指代input 输入
0指代output输出
node 安装
- 验证
通过cmd命令窗口中输入下面命令,来检查是否安装成功:
C: \Users\S> node -v
C: \Users\S> npm -v
- 为什么要配置环境变量?
- 因为我们想访问一个包或者一个文件,只能在它的存放路径去访问
- 如果想在其他路径访问,会报错,提示找不到文件或者命令
gulp -v
gulp不是内部或外部命令,也不是可运行的程序或批处理文件。
注意:修改好环境变星,需要重开cmd.exe命 令提示符
- 自定义路径
npm config set prefix <指定npm全局安装包的存放路径>
npm config set cache <指定npm下包的缓存路径>
如果目录不存在,nodejs会自动创建
什么是单线程
- 默认是单线程,代码按照文档流自上而下执行,以通过process来开启多进程
什么是非阻塞
nodejs提供了一套同步、一套异步的API, 建议我们使用异步编程,事件与回调
单线程容易阻塞服务器,通过异步操作(process) 开启多线程充分利用服务器的性能
npm介绍
npm是nodejs的包管理工具,可以用来下载第三方包(模块)
由于npm服务器在美国,国内由于“墙”的原因,国内访问缓慢
然后有了个cnpm(淘宝镜像,)是一个完整npmjs.org镜像,你可以用此代替官方版本(只读),同步频率目前为10分钟- -次以保证尽量与官方服务同步。
cnpm与npm的不同点
<u>cnpm具备除了publish及unpublish npm的所有功能</u>
安装
npm install cnpm -g
npn config set registry https:// registry .npm. taobao .org
npm常用命令
npm adduser 登陆
npm clear cache 清除缓存
npm clean cache 清除缓存
npm config set <key> <value>
npm config get <key>
npm -h
npm --help 查看帮助
package 代表包的名称
-g 全局安装
-d 当前路径安装
--save 向包管理文件添加生产环境依赖
--save- dev 向包管理文件添加开发环境依赖
npm install <package> -g 安装
npm uninstall <package> -g 卸载
npm publish 发布
npm unpublish 取消发布
npm init 初始化项目
npm owner 一个包的作者
npm whoami 用户名
npm -V 查看版本号
npm run <> 执行包管理文件的某条命令
npm start 启动默认命令简写,npm run start
npm init 生成个包管理文件
npm i 等同于npm install
发布包的流程
- npm init 初始化项目生成一个package.json
package.json是一个包管理文件
{
//项目名称
//1.不能有空格、汉字\,并且不能与npmjs. org育网的包重名
"name": "nodejs",
//项目版本号
// v3,2.1
// 3大版本我们的代码、ui界面有颠覆性的改变
// 2小版本新增功能,修复bug
// 1修复bug.缺陷提升用户体验
"version": "1.0.0",
//项目描述,包含一些关键字、功能描述
"description": "my first nodejs project",
//入口文件
"main": "index. js",
//快捷启动命令
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
//项目要发行的时候需要的证书,平时玩玩忽略它
"license": "MIT",
// 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上
"repository": {
"type": "git",
"url": "git+https://github.com/strongloop/express.git"
},
//项目的关键字,用于seo优化
"keywords": [
"nodejs",
"express",
"mysq1"
],
//包的其他贡献者姓名。
"contributors": [{
"name": "Aaron Heckmann",
"email": "aaron.heckmann+github@gmail.com"
}, ],
//作者
"author": "sq",
//版权信息
"icense": "ISC",
//生产环境依赖模块
"dependencies": 0,
//开发环境依赖模块
"devDependencies": 0
}
- 登录用户、密码、邮箱
npm login
- username 用户名
- password 密码
- email 邮箱
- 发布 npm publish
网友评论