一、node.js模块化,npm包管理
1 common.js模块化
common.js 是 非浏览器导入导出js模块的一种语法
使用 exports 进行导出,通过给 module.exports 赋值来导出任意内容
exports.add=add;
module.exports = {
name, add
}
p s:module.exports 通常写到代码的最下方
使用 require 函数进行模块导入:const m1 = require('./modules/module1.js')
2 es模块化
es模块化就是 EcmaScript 语法下的模块化语法
export 导出:
1:定义并导出:export const sex = 'male'
2:先声明后导出 :
let name = '张三';
let age = 17
export {
name,
age
}
导入 默认导出的内容
import m1 from './modules/module1.js'
导入模块中的所有内容并存入变量 m1
import * as m1 from './modules/module1.js'
二·fs文件系统
1:fs模块
fs.readFile:读文件
fs.writeFile:写文件
fs.readFileSync:同步读文件
fs.writeFileSync:同步写文件
fs.stat:读取文件状态
fs.readdir:读取目录
fs.mkdir:创建目录
fs.rmdir:删除目录 ps:目录中含有文件则无法删除
fs.unlink:删除文件
fs.access:查看路径是否存在
2·assert
断言
当断言的内容为真时,什么都不会发生
当断言失败时,会抛出一个 AssertionError 的异常并显示第二个参数的消息
assert(sex === 'female', '性别不是女的')
深度相等
assert.deepStrictEqual(stu1, stu2, '对象不相等')
正则判断
assert.match('bcd', /^ab/, '正则表达式不匹配')
3·cluster
集群
集群的含义就是一个事物的多个重复个体形成的群落
// 判断是否是主程序
if (cluster.isMaster) {
for (let i = 0; i < os.cpus().length; i++) {
// 每个cpu核心上开启一个从程序
cluster.fork()
}
} else {
console.log(process.pid, '从程序中执行的代码')
}
4·path
// 目录名称
console.log(path.dirname(p))
// 文件全称
console.log(path.basename(p))
// 扩展名
console.log(path.extname(p))
// 结合路径
console.log(path.join(p, '../', 'qwe'))
// join 函数,用于拼接文件路径,通常用来得到一个绝对路径
console.log(path.join('d:/test', '../abc', 'c:/efg', 'hello.js'))
5·promise
promise中文意思是承诺,承诺一定在做完promise自己的事后,然后再做后面的事情
promise工具让异步调用看上去像同步一样,减少开发者在异步开发时的负担,少出异步错误。
.catch:在链式调用的任一过程若报错或执行了reject,此处catch都能捕获到
.finally:无论如何都会执行finally
三·服务器理论基础
1·静态资源服务器
用于访问静态资源的服务器
// 定义静态资源文件夹
const staticDirPath = path.join(__dirname, 'public')
2·重定向
// 添加重定向的状态码
res.statusCode = '302'
// 添加重定向的路径
res.setHeader('Location', '/1.png')
四·express
1·http协议
Content-Type:
text/html | html文档
text/plain | 纯文本
image/jpeg | .jpg图片
image/png | .png图片
text/xml | xml文档
application/json | json数据
application/x-www-form-urlencoded | 表单url编码数据,例如:a=1&b=2&c=3
multipart/form-data | 上传文件时常看到
charset=utf-8 | 指定编码集
Status Code
200 | 请求成功
302 | 资源重定向
304 | 资源未改变,使用浏览器缓存
400 | 客户端请求的语法错误,服务器无法理解
403 | 权限不足 限制访问
404 | 资源未找到
500 | 服务器内部错误
503 | 请求超时
五·mongodb
1·基础命令
// 单个插入
db.user.insertOne
// 批量插入
db.game.insertMany
// 单个删除
db.game.deleteOne
// 批量删除
db.game.deleteMany
// 查询存在指定字段的记录
db.game.find
// 修改
db.game.update
// save保存
// 没有指定_id就插入一条新数据
db.game.save
// 查询数据量
db.game.count
2·查询器
- $eq: 匹配相等记录
- $gt、$gte: 匹配大于、大于等于的记录
- $in:匹配指定范围中的记录
- $lt、$lte:匹配小于、小于等于的记录
- $ne:匹配不等于指定值的记录
- $nin:匹配不在范围中的记录