如何学好node.js
了解node.js
node.js它既是开发平台,也是运行环境,也是新语言..他本身是基于Chrome的JavaScript的v8引擎开发的,因此在编写基于他的代码的时候使用JavaScript语言.但是又不同于传统概念的JavaScript...它的服务端功能以及部分客户端功能必须在服务端运行,所以它实际上是一种在服务端的开发+运行的JavaScript语言,它本身可以作为HTTPServer,也可以当做TCP Server用
特点
他是一个JavaScript运行环境,依赖于Chrome V8引擎进行代码解释
特征
node 无法直接渲染静态页面,提供静态服务
node没有根目录的概念
node必须通过路由程序指定文件才能渲染文件
node比其他服务端性能更好,速度更快
node主要学些什么呢?
- npm包
- node模块
node模块
- 模块一般分为三种
-
核心模块 :node内置模块
-
自定义模块 :自己写的模块
-
第三方模块 :别人写的模块
如何下载使用node
-
官网下载node
-
打开cmd窗口检测node是否安装好
常用的命令及按键
-
node 某个文件 (调用node程序,运行某个js文件)
-
clear/cls (清除界面)
-
ls/dir (查看列表)
-
cd 目录名(进到目录中去)
-
cd .. (返回上一级)
-
cd+斜杠 (直接回到根目录)
-
ctrl+c (停止node程序)
-
输入部分文件名+tab键 (补全文件全名)
-
上下箭头 (切换历史输入)
-
鼠标右键 (复制粘贴)
命令及键盘按键
模块化与npm包
啥是模块化
一个js文件可以引入其他js文件,能使用引入的js文件的中变量,数据,这种特性就称为模块化
使用模块化可以很好解决变量函数名冲突问题,也能灵活的解决文件依赖问题
常见的模块化规范
-
commonjs规范nodejs默认支持
-
es6模块化规范
-
cmd和amd模块化规范
自定义模块
-
定义模块.就是创建一个js文件,对外导出我们希望导出的内容
-
使用模块.在需要使用的地方去导入模块化文件
commonjs规范
-
导入其他模块时统一使用require()函数
-
每个.js文件,都是一个独立的模块,模块内的成员都是私有的
-
在每个js模块中,使用module.exports向外共享成员
导出模块的两种方式
exports
module.exports
初始exports和module.exports是指向同一块内存区域,其内容都是一个空对象(exports是module.exports的别名)
exports === module.exports // 输出是 true
注意点
在定义模块时:
如果直接给exports对象赋值(例如:exports= {a:1,b:2}),此时,exports就不会再指向 module.exports,而转而指向这个新对象,此时,exports与module.exports不是同一个对象。
在引入某模块时:以该模块代码中module.exports指向的内容为准
了解npm和包
-
npm全称(node包管理)它的诞生是为了解决node中第三方包共享的问题
-
npm不需要单独安装安装node时自动安装了
-
npm -v检查安装情况
使用npm方式
-
初始化文件 npm init 初始化后会生成package.json文件
-
安装包 npm i 包名
-
引入使用
当下载过慢时可以修改镜像源 -
检查当前下包地址:npm config get registry
-
把下包地址切换到国内:npm config set registry=registry.npm.taobao.org/
全局安装包和本地安装包
-
全局安装:npm install -g 包名
-
本地安装 npm i 包名
区别
- 要用到该包的命令执行任务的就需要全局安装
- 要通过require引入使用的就需要本地安装
全局安装serve包
安装:npm i -g serve
开发依赖与生产依赖
仅在开发阶段需要用到的包就安装开发依赖包:
npm install 包名 --save-dev 或者 npm install 包名 -D
在开发阶段和项目上线时就下载生产依赖包:
npm install 包名或者 npm install 包名 -S或者 npm install 包名 --save
npm包从创建到发布
- 先创建项目
- 项目初始化 npm init --yes
- 检查包名是否被占用npm view 包名
- 完成功能开发
- 切换到npm源官网上 : npm config get registry检查是否在官网上 切换到外国地址:npm config set registry registry.npmjs.org
- 连接npm :npm adduser
- 输入用户名 密码 邮箱 校验密码
- 检查是否连接成功:npm who am i
- 上传包即可:npm publish
常用命令
升级npm
安装第三方包
删除已安装的包
每日鸡汤
别哭穷,因为没人会给你钱。别喊累,因为没人会帮你做。别想哭,因为大家不在乎。别认输,因为没人希望你赢。别靠人,因为只有自己最可靠。别落魄,因为一堆人等着落井下石。别回首,因为看到的是未修复的裂痕。别低头,因为地上没有黄金只有石头。加油,向着阳光微笑的迎接每一天!