Node.js 教程

菜鸟教程:https://www.runoob.com/nodejs/nodejs-tutorial.html

node js 官网:https://nodejs.org/en/download/

nodejs 官网文档:https://nodejs.org/zh-cn/docs/

w3school nodejs:https://www.w3cschool.cn/search?w=nodejs

Windows10 安装 nodejs 及相关配置https://blog.csdn.net/ARPOSPF/article/details/105339133

1、nodejs 和 js 之间有什么区别?

Node.js 发布于2009年5月,由 Ryan Dahl 开发,是一个基于 Chrome V8 引擎的 JavaScript 运行环境,使用了一个事件驱动、非阻塞式I/O模型。Node.js 就是一个 JavaScript 的运行环境,让 JavaScript 运行在服务端的开发平台它让JavaScript 成为与 PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。

如果要执行 JavaScript 代码,需要一个 js 引擎来解析并执行 js 源代码,你可以安装一个浏览器(内置js引擎),或 nodejs 环境(内置js引擎),如果在 js 代码中调用了浏览器提供的API,则必须安装一个浏览器,若调用了nodejs API,则必须安装nodejs环境,然后以各自规定的方式加载、执行JavaScript代码。

  • 第一,JavaScript 是一门编程语言(脚本语言),​而 Node.js 是一个平台,可以简单理解为它是JavaScript 的一种执行环境。
  • 第二,JavaScript 以前是在浏览器里执行的,需要浏览器里的 JavaScript 引擎。Firefox 的 js 引擎是 Spidermonkey ,Safari 的 js 引擎是 JavaScriptCore,Chrome 是 V8 引擎。现在有人把Chrome 的 V8 的引擎拿出来做成包,并加入了内置基本模块(大多用 JavaScript 编写),就构成了Node.js。
  • 第三,Node.js 可以说是 JavaScrip 的一种独立于浏览器的运行环境。
  • 第四,组成的差别:

2、nodejs 教程

https://www.runoob.com/nodejs/nodejs-tutorial.html

  • Node.js 安装配置
  • Node.js 创建第一个应用
  • NPM 使用介绍
  • Node.js REPL
  • Node.js 回调函数
  • Node.js 事件循环
  • Node.js EventEmitter
  • Node.js Buffer
  • Node.js Stream
  • Node.js 模块系统
  • Node.js 函数
  • Node.js 路由
  • Node.js 全局对象
  • Node.js 常用工具
  • Node.js 文件系统
  • Node.js GET/POST请求
  • Node.js 工具模块
  • Node.js Web 模块
  • Node.js Express 框架
  • Node.js RESTful API
  • Node.js 多进程
  • Node.js JXcore 打包
  • Node.js MySQL
  • Node.js MongoDB

3、node.js入门教程( B站黑马程序员 )

视频地址:https://www.bilibili.com/video/BV1a34y167AZ

https://blog.csdn.net/m0_46403734/article/details/124782387

3.1 初识 node.js

浏览器中的 JavaScript 运行环境

Node.js 中的 JavaScript 运行环境

Node.js 可以做什么

  • Node.js 作为一个 JavaScript 的运行环境,仅仅提供了基础的功能和API。然而,基于Node.js 提供的这些基础能,很多强大 的工具和框架如雨后春笋,层出不穷,所以学会了Node.js ,可以让前端程序员胜任更多的工作和岗位:
    ① 基于 Express 框架(http://www.expressjs.com.cn/),可以快速构建Web 应用
    ② 基于 Electron 框架(https://electronjs.org/),可以构建跨平台的桌面应用
    ③ 基于 restify框架(http://restify.com/),可以快速构建API 接口项目
    ④ 读写和操作数据库、创建实用的命令行工具辅助前端开发、etc…

Node.js 怎么学

  • 浏览器中的 JavaScript 学习路径:JavaScript 基础语法 + 浏览器内置 API(DOM + BOM) + 第三方库(jQuery、art-template 等)
  • Node.js 的学习路径:JavaScript 基础语法 + Node.js 内置 API 模块(fs、path、http等)+ 第三方 API 模块(express、mysql等)

3.2 fs 文件系统模块

什么是 fs 文件系统模块

读取指定文件中的内容

向指定的文件中写入内容

fs 模块 --- 路径动态拼接的问题

3.3 path 路径模块

什么是 path 路径模块

路径拼接

获取路径中的文件名

获取路径中的文件扩展名

3.4 http 模块

什么是 http 模块

进一步理解 http 模块的作用

服务器相关的概念

创建最基本的 web 服务器

基本步骤:

  • 1. 导入 http 模块
  • 2. 创建 web 服务器实例
  • 3. 为 服务器实例 绑定 request 事件,监听客户端请求
  • 4. 启动服务器
// 1. 导入 http 模块
const http = require('http')

// 2. 创建 web 服务器实例
const server = http.createServer()

// 3. 为服务器实例绑定 request 事件,监听客户端的请求
server.on('request', function (req, res) {
  console.log('Someone visit our web server.')
})

// 4. 启动服务器
server.listen(8080, function () {  
  console.log('server running at http://127.0.0.1:8080')
})

request、response

关于中文乱码

根据不同的 url 响应不同的 html 内容

核心实现步骤:

  • 1. 获取 请求的 URL 地址
  • 2. 设置 默认的响应内容 为 404 Not found
  • 3. 判断用户请求是否为 / 或者 /index.html 首页
  • 4. 判断用户请求是否为 /about.html 关于页面
  • 5. 设置 Content-Type 响应头,防止中文乱码
  • 6. 使用 res.end() 把内容响应给客户端

3.5 Node.js 中的模块化

Node.js 中模块的分类

加载模块

Node.js 中的模块作用域

向外共享模块作用域中的成员

注意:为了防止混乱,建议大家不要在同一个模块中同时使用 exports 和 module.exports

Node.js 中的模块化规范

4、Node.js web 开发框架 --- Express

1.1 Express简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 Express 的基本使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3 托管静态资源

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. Express 路由

2.1 路由的概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 路由的使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. Express 中间件

3.1 中间件的概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 Express 中间件的初体验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 中间件的分类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 自定义中间件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 使用 Express 写接口

4.1 创建基本的服务器

在这里插入图片描述

4.2 创建 API 路由模块

在这里插入图片描述

4.3 编写 GET 接口

在这里插入图片描述

4.4 编写 POST 接口

在这里插入图片描述

4.5 CORS 跨域资源共享

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.6 JSONP 接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.数据库与身份认证

1. 数据库的基本概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 安装并配置 MySQL

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. MySQL 的基本使用

3.1 使用 MySQL Workbench 管理数据库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 使用 SQL 管理数据库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 SQL 的 SELECT 语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 SQL 的 INSERT INTO 语句

在这里插入图片描述
在这里插入图片描述

3.5 SQL 的 UPDATE 语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6 SQL 的 DELETE 语句

在这里插入图片描述
在这里插入图片描述

3.7 SQL 的 WHERE 子句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.8 SQL 的 AND 和 OR 运算符

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.9 SQL 的 ORDER BY 子句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.10 SQL 的 COUNT(*) 函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
演示代码如下:

-- 查询所有数据
select * from users
-- 查询指定列数据
-- select username,password from users
-- 插入数据
-- insert into users (username,password) values ('tony stark','098123')
-- select * from users
-- 更新用户id4的密码
-- update users set password='888888' where id=4
-- select * from users
-- 更新id2用户密码和状态
-- update users set password='admin123',status=1 where id=2
-- select * from users
-- 删除id4用户
-- delete from users where id=4
-- select * from users
-- 查询限定数据
-- select * from users where status=1
-- select * from users where id>2
-- and的使用
-- select * from users where status=0 and id<3
-- or的使用
-- select * from users where status=1 or username='zs'
-- 按照status升序
-- select * from users order by status
-- 按照id降序
-- select * from users order by id desc
-- 多重排序
-- select * from users order by status desc,username asc
-- 使用count(*) 统计status=0的总数
-- select count(*) from users where status=0
-- 使用AS起别名
-- select count(*) as total from users where status=0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

##在这里插入图片描述

4. 在项目中操作 MySQL

4.1 在项目中操作数据库的步骤

在这里插入图片描述

4.2 安装与配置 mysql 模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 使用 mysql 模块操作 MySQL 数据库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码实现:

const mysql = require('mysql');
const db = mysql.createPool({
    host: '127.0.0.1',
    user: 'root',
    password: 'admin123',
    database: 'my_db_01'
})

// 测试MySQL能否使用
// db.query('select 1',(err,results)=>{
//     if(err){
//         console.log(err.message);
//     }
//     console.log(results);
// });

// 查询数据
// const sqlStr = 'select * from users';
// db.query(sqlStr, (err, results) => {
//     if (err) {
//         console.log(err.message);
//     }
//     console.log(results);
// });

// 插入数据
// const user = {
//     username: 'Spider-Man',
//     password: 'pcc123'
// };
// const sqlStr = 'insert into users (username,password) values (?,?)';
// db.query(sqlStr, [user.username, user.password], (err, result) => {
//     if (err) {
//         console.log(err.message);
//     }
//     if (result.affectedRows === 1) {
//         console.log('插入数据成功');
//     };
// })

// 插入数据(快捷方式)
// const user = {
//     username: 'Spider-Man2',
//     password: 'pcc4321'
// };
// const sqlStr = 'insert into users set ?';
// db.query(sqlStr, user, (err, result) => {
//     if (err) {
//         console.log(err.message);
//     }
//     if (result.affectedRows === 1) {
//         console.log('插入数据成功');
//     };
// })



// 更新数据
// const user = {
//     id: 6,
//     username: 'aaa',
//     password: '000'
// };
// const sqlStr = 'update users set username=?, password=? where id=?';
// db.query(sqlStr, [user.username, user.password,user.id], (err, result) => {
//     if (err) {
//         console.log(err.message);
//     }
//     if (result.affectedRows === 1) {
//         console.log('更新数据成功');
//     };
// })

// 更新数据(快捷方式)
// const user = {
//     id: 6,
//     username: 'aaaa',
//     password: '0000'
// };
// const sqlStr = 'update users set ? where id=?';
// db.query(sqlStr, [user,user.id], (err, result) => {
//     if (err) {
//         console.log(err.message);
//     }
//     if (result.affectedRows === 1) {
//         console.log('更新数据成功');
//     };
// })

// 删除数据
// const sqlStr = 'delete from users where id=?';
// db.query(sqlStr, 5, (err, result) => {
//     if (err) {
//         console.log(err.message);
//     }
//     if (result.affectedRows === 1) {
//         console.log('删除数据成功');
//     };
// })

// 标记删除数据
const sqlStr = 'update users set status=? where id=?';
db.query(sqlStr, [1,6], (err, result) => {
    if (err) {
        console.log(err.message);
    }
    if (result.affectedRows === 1) {
        console.log('标记删除数据成功');
    };
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110

5. 前后端的身份认证

5.1 Web 开发模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2 身份认证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 Session 认证机制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.4 在 Express 中使用 Session 认证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.5 JWT 认证机制

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.6 在 Express 中使用 JWT

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、项目【开发API接口】

在线地址:http://www.escook.cn:8088/#/mds/1.init

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值