一、认识npm
- 一个基于node的第三方包(模块)管理器
1、npm 的安装
- 安装node的时候,就安装过了, 我们可以直接使用
2、npm 的检测
- 打开 cmd
- 输入指令: npm -v || npm --version
3、pm 的作用
- 帮助我们去下载安装第三方模块(包)
- 帮助我们上传自己的模块(包), 到第三方仓库(全世界通用的)
二、npm的初始化
1. 打开cmd需要在项目所在的根目录
2. 输入 npm init
- package name: 项目名(尽量纯英文 || 纯拼音)
- version: 项目第一次发布的版本号, 初次版本号 0.0.1 0.1.0
- description: 对项目的描述
- entry point: 项目的入口文件(一般是后端使用)
3. 输入 npm init --yes || npm init -y
4. 输入完成后,会在项目根目录里创建一个文件 package.json
- 这个文件就是对我们这个项目的一些描述
- 以及安装过的第三方包
三、npm 下载指令
1. 安装命令 npm install 包名 || npm i 包名
2. 一般下载默认是最新的稳定版
- npm 下载完毕之后, 会在项目根目录创建一个node_modules
- 所有的第三方都在这个目录内
3. 查询包的可安装版本
4. package.json
- 只会记录一个 包的版本, 后续安装的会顶替掉之前安装
5. 安装指定版本的包
- npm install 包名@版本号
6. 卸载第三方包
- 卸载命令 npm uninstall 包名 || npm un 包名
7. 统一下载所有依赖
- 将来项目传输时因为 node_modules 文件过多, 导致传输很慢,所以通常都会删掉 node_mdoules (package.json一定要留下)
- 其他开发拿到这个没有node_modules 的目录(项目)的时候,找到项目根目录(也就是 package.json 在的目录)
- 打开 cmd,输入指令 npm install || npm i
8. npm 清除缓存
- 输入命令 npm cache clear -f 清除完成, 没有任何反馈
- 清除本地缓存(win)
文件查找: C盘 ---> 用户(Users) ---> 用户名 ---> AppData(隐藏文件) ---> Roaming ---> npm-cache,右键点击删除即可
9. npm 切换淘宝源
- npm config set registry https://registry.npmmirror.co
四、第三方模块
(一)lodash
1、第三方模块使用流程
- 下载并导入 npm i lodash
- 按照规范去使用库
// _ 只是一个变量名, 开发时使用这个库习惯这样叫
const _ = require("lodash");
console.log(_);
- 引入第三方模块时, 先把这个模块当成内置模块去引入, 如果没有按照第三方模块引入会先去 module.paths内, 按照元素排列顺序, 去一个一个查找
console.log(module)
/*
Module {
id: '.',
path: 'E:\\yizhiyang\\JavaScript2\\date1201\\teacher\\code',
exports: {},
filename: 'E:\\yizhiyang\\JavaScript2\\date1201\\teacher\\code\\01_使用node第三方包.js',
loaded: false,
children: [],
paths: [
'E:\\yizhiyang\\JavaScript2\\date1201\\teacher\\code\\node_modules',
'E:\\yizhiyang\\JavaScript2\\date1201\\teacher\\node_modules',
'E:\\yizhiyang\\JavaScript2\\date1201\\node_modules',
'E:\\yizhiyang\\JavaScript2\\node_modules',
'E:\\yizhiyang\\node_modules',
'E:\\node_modules'
]
}
*/
2、lodash方法的使用
const _ = require("lodash");
// 创建一个变量, 变量是一个数组, 数组是两个对象
var objects = [{ a: 1 }, { b: 2 }];
// 深拷贝这个对象, 将深拷贝后的值, 放到变量deep
var deep = _.cloneDeep(objects);
var deep = objects
// 对比 deep[0] 和 objects[0]
console.log(deep[0] === objects[0]); ;
console.log(deep[0]);
console.log(objects[0]);
// 判断第一个参数是否大于第二个参数
console.log(_.gt(3, 1));
(二)nodemailer
作用:Nodemailer 是一个简单易用的 Node.JS 邮件发送模块
1. 下载并导入 (npm i nodemailer)
2. 按照规则去使用
1、QQ邮箱授权码的获取方法
2、代码实现
配置项查找
1. node_modules
2. nodemailer
3. lib
4. well-known
5. services.json
smtp 获取方式
1. 到邮箱内
2. 设置
3. 账户
4. 开启 POP3/SMTP服务 (需要发短信验证)
//导入第三方库
const nodemailer = require('nodemailer');
// 创建一个邮递员 帮助我们发邮件
let transporter = nodemailer.createTransport({
domains: ['qq.com'],
host: 'smtp.qq.com',
port:465,
secure: true,
// 发送者的邮箱
auth: {
//发送者的账户和授权码
//个人邮箱账户
user: '3255443166@qq.com',
// smtp授权码,到邮箱设置下获取, 这个不是登陆密码
pass: 'yhhgimfreaskdbgb'
}
})
transporter.sendMail(
{
from:'3255443166@qq.com', // from 发送者昵称和地址
/**
* 接收者的邮箱地址
* 可以是一个字符串邮箱
* 也可以是一个数组 ['', '', '']
*/
to:'1104494454@qq.com',
subject: 'hello', //邮件主题
// txt:'',
html:` //比较常用
<h1>这是我给你发的邮箱</h1>
`
},
(error, info) => {
if(error){
return console.log(error);
}
console.log('邮箱发送成功ID:', info.messageId);;
}
)
(三)认识nodemon
- 作用: 替代 node 文件名 这个命令
- 使用时间: 开发的时候
- 需要全局安装:npm i nodemon -g
- 启动命令:nodemon 文件名
- 这种启动方式具有监听的效果, 只要文件改变并保存, 然后就会自动重启服务器