最近在网上找了一些视频,对node.js简单学习一下,学的同时,也对自己学的内容做了一些梳理,发文章,主要是记录一下收获,如果顺便能对看到这篇文章的朋友起到一点帮助,那就更是再好不过了~
什么是 Node?
node.js是门技术不是语言(主要是我刚开始有点混淆(捂脸))
- https://nodejs.org/en/
- Node 的实现结构:node运行环境基于v8引擎
V8
JavaScript 解析执行引擎 ECMAScript
中间层
(提供了文件操作、网络操作登陆接口)更加接近操作系统的接口供开发人员使用**(C++编写)**
硬件层
特点:
用事件驱动、无阻塞的io模型
优势轻量、高效
-
node运行环境基于v8引擎
javaScript -> chrome V8 -> libuv(中间层,C++) -> 硬盘,网卡等硬件了 特点用事件驱动、无阻塞的io模型 优势轻量、高效
-
node是门技术不是语言
java开发、.net、c#、node js开发、iOS开发
以下是几条对Node.js的官方解读:
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
1. JavaScript runtime JavaScript 运行时
2. Chrome's V8 JavaScript engine Chrome 浏览器 V8 引擎
3. Node.js 是一个 构建于 谷歌的 Chrome 浏览器的 V8 引擎之上的一个 `JavaScript运行时` 环境
4. Node.js可以解析和执行 JavaScript 代码
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
1. event-driven 事件驱动模型
2. non-blocking I/O model 非阻塞IO模型 IO(input/output)输入与输出
3. lightweight 轻量级
在软件开发行业中,轻量级标识褒义词
轻量级也就意味着 运行速度快
轻量级也就意味着有更好的 跨平台 特性(平台的差异性,兼容性)
4. efficient 高效的
5. Node.js的事件驱动和非阻塞IO模型使得Node.js本身非常的轻量和高效
Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
1. package ecosystem npm 包生态系统 npm
2. largest 最大的
3. open source libraries 开源库
理论意义上 开源就表示有成熟的社区,开放源代码
4. Node.js 的npm包生态系统,是世界上 最大的 开源库 生态系统
5. 以前的 客户端中 JavaScript 库 散列在互联网的各个地方
6. npm 就是 把大家经常使用的一些开源库 给 组织到了一起
Node 是一个可以解析和执行 JavaScript 代码的 运行时环境
- Node.js 的作者 瑞恩.达尔
安装与配置
官网的nodejs版本,注意用偶数的,别用奇数的,偶数的是稳定版本,这一点在版本发布图中也可用看出来..
nvm安装法
nvm 安装和管理我们的 Node.js版本,但是首先,你得安装nvm...
安装命令:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
然后设置全局变量,就可以使用了(设置全局变量的方法...就不赘述了吧...)
在这里说一下node相关的三个命令:nvm, npm, nrm
nvm - node版本的管理工具
nvm Githup项目地址:
https://github.com/coreybutler/nvm-windows
nvm list
查看所有已安装的本地的node版本
nvm use 版本号
切换node版本
nvm install 版本号 位数
安装指定版本的node
nvm uninstall 版本号
卸载已安装的指定版本的node
npm - node的包管理工具
nrm - npm的数据源管理工具
npm install -g nrm
nrm ls 查看数据源
nrm test 测试你的网连那个npm的数据源快
nrm use 切换数据源
可以使用cnpm - 淘宝镜像,加快网速
安装包的方式安装
常见的错误
1. 安装了node 没有卸载
2. 32和64搞混了
3. 拼写错误,路径错误
npm
- 基于Node.js开发的包的托管网站
- 基于包的规范实现的Node.js包管理工具
npm init 创建package.json文件
npm install 将package.json中的文件依赖的包从网上下载到本地
npm install -save 包名 将包下载下来并且加载到dependencies中去
npm i -S 包名 替代上面的命令
npm install -save-dev 包名 将包下载下来并且加载到devDependencies中去
npm i -D 包名 替代上面的命令
npm docs 包名 查看包的文档
npm list
当前目录有什么包,检测node_modules里面有什么
npm install 包名
当执行npm install的时候,它会自动跑到npm的网站,然后找到该包的github地址,
找到之后,下载这个压缩包,然后在执行npm install的当前目录下找一个叫做node_modules目录
如果找到,直接解压这个压缩包,到node_modules目录下
如果找不到,则新建一个node_modules目录,解压到该目录
npm install -g 包名
表示全局安装
npm在安装的时候,在全局设置了一个安装目录,只要是全局安装就会把包安装到这个目录里面去
'只要是全局安装就是安装命令行工具'
npm install,缩写 npm i
当执行npm install的时候,会自动在当前目录中查找package.json文件
如果找到,找里面的devDependencies、 dependencies 字段,安装该字段中所有依赖的项
npm config set prefix 修改全局安装目录
不建议使用,建议去文件夹里面改 C:\Users\用户名 里面有一个 .npmrc文件
去里面改prefix = C:\dev\npm (写你的路径)
去全局的环境变量path里把C:\dev\npm 路径加进去
以后在做项目的时候,先初始化一个package.json文件,在安装第三方包依赖的时候,必须使用npm install --save express,添加依赖项到package.json文件中,
实际就是添加到dependencies字段中
参考文献 npm的命令 https://docs.npmjs.com/
npm的最终的目的就是:让开发模式工程化,都依靠工具来管理
注意:
当我们安装好node.js —>
安装好npm(node.js自带的) —> 然后利用npm下载拉取其他库的时候,可能会报错:no such file or directory, open '/Users/usr/package.json'
解决办法:
检测npm是不是最新版本的,因为node.js安装,虽然会自带npm,但是npm的迭代更新比node.js要快
更新npm版本,或者重新下载node.js(此次解决办法:重新下载安装了最新版本的node.js/npm,然后突然就好了~)
node命令 执行js文件
用node执行js文件,文件在当前目录下---->node +文件名
如果不在当前目录下,node +文件路径的形式执行
//运行普通的nodejs文件,与nodejs服务器文件,都是node指令,区别在于后者能开启一个服务
相对路径
./当前路径
../上级目录
绝对路径执行js的方式
node c:\Users\cena\Desktop\code\01helloworld.js