1.node.js有什么用
2.安装
3.在node.js中执行js代码
在cmd或powershell进入js所在文件目录中,输入 node js文件
3.终端常用快捷键
4.fs文件系统模块
fs.readFile()
示例
判断文件是否读取成功
fs.writeFile()
新写入的内容会覆盖原来的内容。
示例
判断文件是否写入成功
案例:成绩整理
原数据
执行之后
const fs = require('fs');
fs.readFile('./files/1.txt', 'utf8', function (err, result) {
if (err) {
return console.log('error' + err.message);
}
const arrOld = result.split(' ');
const arrNew = [];
arrOld.forEach(item => {
arrNew.push(item.replace('=', ':'));
})
const newStr = arrNew.join('\r\n');
fs.writeFile('./files/1.txt', newStr, function (err, result) {
if (err) {
return console.log('error' + err.message);
}
console.log('写入成功');
})
})
路径动态拼接问题
绝对路径移植性非常差,不利于维护。
node.js提供了__dirname
变量,为当前文件所在目录。
注意:路径应使用双斜杠
path.join([…paths])路径拼接
../
返回上一级,因此/c
被抵消了。
使用 + 号拼接路径可能会把 .
拼进去,造成错误,而path.join()不会。
path.basename()获取路径中的文件名
path.extname()获得文件扩展名
5.时钟案例
6.http模块
作用
ip地址
域名和域名服务器(DNS)
端口号
创建web服务器
req请求对象
res响应对象
解决中文乱码问题
动态响应内容
7.案例:实现clock的web服务器
请求到index.html后会自动加载js和css。
8.优化路径
9.模块化
模块化的规范
模块的分类
加载模块require
require只会执行一次相同代码。
自定义模块的module对象
module.exports对象
node.js的模块化规范
模块加载机制
10.npm与包
安装包
在终端中进入项目的目录。安装包后会覆盖原来的包,不用删除原来的包。
格式化时间
// 1. 定义格式化时间的方法
function dateFormat(dtStr) {
const dt = new Date(dtStr)
const y = dt.getFullYear()
const m = padZero(dt.getMonth() + 1)
const d = padZero(dt.getDate())
const hh = padZero(dt.getHours())
const mm = padZero(dt.getMinutes())
const ss = padZero(dt.getSeconds())
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}
// 定义补零的函数
function padZero(n) {
return n > 9 ? n : '0' + n
}
module.exports = {
dateFormat
}
装包后多了哪些文件
包的版本号
包管理配置文件
安装所有依赖包
卸载包
解决下包速度慢的问题
包的分类
开发属于自己的包
11.express
安装
创建web服务器
app.get()
app.post()
app.use()
res.send()
获取URL携带的查询参数
获取URL中的动态参数
托管静态资源express.static()
挂载前缀
挂载前缀后输入网址时需要加上前缀才能访问到静态资源。
express中的路由
模块化路由
创建路由模块是把路由存放在一个文件中,服务器导入这些模块,从而减少服务器的代码量。
服务器导入封装的模块。
12.中间件
定义中间件函数
定义多个全局中间件
局部生效的中间件
不写next(),也不用app.use()。
中间件的注意事项
中间件的分类
没有错误级别中间件,发生error会导致直接崩溃。
测试
自定义中间件
13.使用express写接口
导入路由模块,以下代码在服务器
14.跨域资源共享
cors
jsonp接口
15.数据库
(一)在项目中安装MySQL模块
PS D:\vscode\前端资料\node.js资料\day5\code> npm i mysql
(二)配置MySQL模块
(三)使用MySQL模块操作数据库
16.web开发模式
17.前后端身份认证
session认证机制
在express中使用session认证
清空的是当前用户的信息。
cookie
jwt认证机制
使用jwt认证
不能把密码加入到token中。