node.js

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

https://expressjs.com/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装

在这里插入图片描述

创建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中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值