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

视频链接:https://www.bilibili.com/video/BV1a34y167AZ?p=1

一、初识node.js

1.浏览器中的 JavaScript 运行环境

node.js入门教程(B站黑马程序员)_第1张图片

2.Node.js 中的 JavaScript 运行环境

node.js入门教程(B站黑马程序员)_第2张图片

3.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…

4.Node.js 怎么学

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

二、fs 文件系统模块

2.1 什么是 fs 文件系统模块

node.js入门教程(B站黑马程序员)_第3张图片

2.2 读取指定文件中的内容

node.js入门教程(B站黑马程序员)_第4张图片
node.js入门教程(B站黑马程序员)_第5张图片
node.js入门教程(B站黑马程序员)_第6张图片

2.3 向指定的文件中写入内容

node.js入门教程(B站黑马程序员)_第7张图片
node.js入门教程(B站黑马程序员)_第8张图片

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

node.js入门教程(B站黑马程序员)_第9张图片

三、path 路径模块

3.1 什么是 path 路径模块

node.js入门教程(B站黑马程序员)_第10张图片

3.2 路径拼接

node.js入门教程(B站黑马程序员)_第11张图片
node.js入门教程(B站黑马程序员)_第12张图片

3.3 获取路径中的文件名

在这里插入图片描述
node.js入门教程(B站黑马程序员)_第13张图片

3.4 获取路径中的文件扩展名

node.js入门教程(B站黑马程序员)_第14张图片
node.js入门教程(B站黑马程序员)_第15张图片

四、http 模块

4.1 什么是 http 模块

node.js入门教程(B站黑马程序员)_第16张图片

4.2 进一步理解 http 模块的作用

node.js入门教程(B站黑马程序员)_第17张图片

4.3 服务器相关的概念

node.js入门教程(B站黑马程序员)_第18张图片
node.js入门教程(B站黑马程序员)_第19张图片
node.js入门教程(B站黑马程序员)_第20张图片

4.4 创建最基本的 web 服务器

node.js入门教程(B站黑马程序员)_第21张图片
node.js入门教程(B站黑马程序员)_第22张图片
node.js入门教程(B站黑马程序员)_第23张图片
node.js入门教程(B站黑马程序员)_第24张图片
node.js入门教程(B站黑马程序员)_第25张图片
node.js入门教程(B站黑马程序员)_第26张图片
node.js入门教程(B站黑马程序员)_第27张图片
代码实现:

// 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')
})

node.js入门教程(B站黑马程序员)_第28张图片

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

node.js入门教程(B站黑马程序员)_第29张图片
node.js入门教程(B站黑马程序员)_第30张图片

五、Node.js 中的模块化

1 Node.js 中模块的分类

node.js入门教程(B站黑马程序员)_第31张图片

2 加载模块

node.js入门教程(B站黑马程序员)_第32张图片

3 Node.js 中的模块作用域

node.js入门教程(B站黑马程序员)_第33张图片
node.js入门教程(B站黑马程序员)_第34张图片

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

node.js入门教程(B站黑马程序员)_第35张图片
node.js入门教程(B站黑马程序员)_第36张图片
node.js入门教程(B站黑马程序员)_第37张图片
node.js入门教程(B站黑马程序员)_第38张图片
node.js入门教程(B站黑马程序员)_第39张图片

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

5 Node.js 中的模块化规范

node.js入门教程(B站黑马程序员)_第40张图片

六、 Express

1. 初识 Express

1.1 Express简介

node.js入门教程(B站黑马程序员)_第41张图片
node.js入门教程(B站黑马程序员)_第42张图片
node.js入门教程(B站黑马程序员)_第43张图片

1.2 Express 的基本使用

node.js入门教程(B站黑马程序员)_第44张图片
node.js入门教程(B站黑马程序员)_第45张图片
node.js入门教程(B站黑马程序员)_第46张图片
node.js入门教程(B站黑马程序员)_第47张图片
node.js入门教程(B站黑马程序员)_第48张图片
node.js入门教程(B站黑马程序员)_第49张图片
node.js入门教程(B站黑马程序员)_第50张图片

1.3 托管静态资源

node.js入门教程(B站黑马程序员)_第51张图片
node.js入门教程(B站黑马程序员)_第52张图片
node.js入门教程(B站黑马程序员)_第53张图片

2. Express 路由

2.1 路由的概念

在这里插入图片描述
node.js入门教程(B站黑马程序员)_第54张图片
node.js入门教程(B站黑马程序员)_第55张图片
node.js入门教程(B站黑马程序员)_第56张图片

2.2 路由的使用

node.js入门教程(B站黑马程序员)_第57张图片
node.js入门教程(B站黑马程序员)_第58张图片
node.js入门教程(B站黑马程序员)_第59张图片
node.js入门教程(B站黑马程序员)_第60张图片
node.js入门教程(B站黑马程序员)_第61张图片

3. Express 中间件

3.1 中间件的概念

node.js入门教程(B站黑马程序员)_第62张图片
node.js入门教程(B站黑马程序员)_第63张图片
node.js入门教程(B站黑马程序员)_第64张图片
node.js入门教程(B站黑马程序员)_第65张图片
node.js入门教程(B站黑马程序员)_第66张图片

3.2 Express 中间件的初体验

在这里插入图片描述
node.js入门教程(B站黑马程序员)_第67张图片
node.js入门教程(B站黑马程序员)_第68张图片
node.js入门教程(B站黑马程序员)_第69张图片
node.js入门教程(B站黑马程序员)_第70张图片
node.js入门教程(B站黑马程序员)_第71张图片
node.js入门教程(B站黑马程序员)_第72张图片
在这里插入图片描述

3.3 中间件的分类

node.js入门教程(B站黑马程序员)_第73张图片
node.js入门教程(B站黑马程序员)_第74张图片
node.js入门教程(B站黑马程序员)_第75张图片
node.js入门教程(B站黑马程序员)_第76张图片
node.js入门教程(B站黑马程序员)_第77张图片
node.js入门教程(B站黑马程序员)_第78张图片

3.4 自定义中间件

node.js入门教程(B站黑马程序员)_第79张图片
node.js入门教程(B站黑马程序员)_第80张图片
node.js入门教程(B站黑马程序员)_第81张图片
node.js入门教程(B站黑马程序员)_第82张图片
node.js入门教程(B站黑马程序员)_第83张图片
node.js入门教程(B站黑马程序员)_第84张图片
node.js入门教程(B站黑马程序员)_第85张图片

4. 使用 Express 写接口

4.1 创建基本的服务器

node.js入门教程(B站黑马程序员)_第86张图片

4.2 创建 API 路由模块

node.js入门教程(B站黑马程序员)_第87张图片

4.3 编写 GET 接口

node.js入门教程(B站黑马程序员)_第88张图片

4.4 编写 POST 接口

node.js入门教程(B站黑马程序员)_第89张图片

4.5 CORS 跨域资源共享

在这里插入图片描述
node.js入门教程(B站黑马程序员)_第90张图片
node.js入门教程(B站黑马程序员)_第91张图片
node.js入门教程(B站黑马程序员)_第92张图片
node.js入门教程(B站黑马程序员)_第93张图片
node.js入门教程(B站黑马程序员)_第94张图片
node.js入门教程(B站黑马程序员)_第95张图片
node.js入门教程(B站黑马程序员)_第96张图片
node.js入门教程(B站黑马程序员)_第97张图片
node.js入门教程(B站黑马程序员)_第98张图片
node.js入门教程(B站黑马程序员)_第99张图片
node.js入门教程(B站黑马程序员)_第100张图片

4.6 JSONP 接口

node.js入门教程(B站黑马程序员)_第101张图片
node.js入门教程(B站黑马程序员)_第102张图片
node.js入门教程(B站黑马程序员)_第103张图片
node.js入门教程(B站黑马程序员)_第104张图片
node.js入门教程(B站黑马程序员)_第105张图片

5.数据库与身份认证

1. 数据库的基本概念

node.js入门教程(B站黑马程序员)_第106张图片
在这里插入图片描述
node.js入门教程(B站黑马程序员)_第107张图片
node.js入门教程(B站黑马程序员)_第108张图片
node.js入门教程(B站黑马程序员)_第109张图片
node.js入门教程(B站黑马程序员)_第110张图片

2. 安装并配置 MySQL

node.js入门教程(B站黑马程序员)_第111张图片
node.js入门教程(B站黑马程序员)_第112张图片
node.js入门教程(B站黑马程序员)_第113张图片

3. MySQL 的基本使用

3.1 使用 MySQL Workbench 管理数据库

node.js入门教程(B站黑马程序员)_第114张图片
在这里插入图片描述
node.js入门教程(B站黑马程序员)_第115张图片
node.js入门教程(B站黑马程序员)_第116张图片
node.js入门教程(B站黑马程序员)_第117张图片

3.2 使用 SQL 管理数据库

node.js入门教程(B站黑马程序员)_第118张图片
node.js入门教程(B站黑马程序员)_第119张图片
node.js入门教程(B站黑马程序员)_第120张图片

3.3 SQL 的 SELECT 语句

node.js入门教程(B站黑马程序员)_第121张图片
node.js入门教程(B站黑马程序员)_第122张图片
node.js入门教程(B站黑马程序员)_第123张图片

3.4 SQL 的 INSERT INTO 语句

node.js入门教程(B站黑马程序员)_第124张图片
node.js入门教程(B站黑马程序员)_第125张图片

3.5 SQL 的 UPDATE 语句

node.js入门教程(B站黑马程序员)_第126张图片
node.js入门教程(B站黑马程序员)_第127张图片
在这里插入图片描述

3.6 SQL 的 DELETE 语句

在这里插入图片描述
node.js入门教程(B站黑马程序员)_第128张图片

3.7 SQL 的 WHERE 子句

node.js入门教程(B站黑马程序员)_第129张图片
node.js入门教程(B站黑马程序员)_第130张图片
node.js入门教程(B站黑马程序员)_第131张图片

3.8 SQL 的 AND 和 OR 运算符

node.js入门教程(B站黑马程序员)_第132张图片
node.js入门教程(B站黑马程序员)_第133张图片
node.js入门教程(B站黑马程序员)_第134张图片

3.9 SQL 的 ORDER BY 子句

node.js入门教程(B站黑马程序员)_第135张图片
node.js入门教程(B站黑马程序员)_第136张图片
node.js入门教程(B站黑马程序员)_第137张图片
node.js入门教程(B站黑马程序员)_第138张图片

3.10 SQL 的 COUNT(*) 函数

node.js入门教程(B站黑马程序员)_第139张图片
node.js入门教程(B站黑马程序员)_第140张图片
node.js入门教程(B站黑马程序员)_第141张图片
演示代码如下:

-- 查询所有数据
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

##node.js入门教程(B站黑马程序员)_第142张图片

4. 在项目中操作 MySQL

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

node.js入门教程(B站黑马程序员)_第143张图片

4.2 安装与配置 mysql 模块

node.js入门教程(B站黑马程序员)_第144张图片
node.js入门教程(B站黑马程序员)_第145张图片
node.js入门教程(B站黑马程序员)_第146张图片

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

node.js入门教程(B站黑马程序员)_第147张图片
node.js入门教程(B站黑马程序员)_第148张图片
node.js入门教程(B站黑马程序员)_第149张图片
node.js入门教程(B站黑马程序员)_第150张图片
node.js入门教程(B站黑马程序员)_第151张图片
node.js入门教程(B站黑马程序员)_第152张图片
node.js入门教程(B站黑马程序员)_第153张图片
代码实现:

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('标记删除数据成功');
    };
})

5. 前后端的身份认证

5.1 Web 开发模式

node.js入门教程(B站黑马程序员)_第154张图片
node.js入门教程(B站黑马程序员)_第155张图片
node.js入门教程(B站黑马程序员)_第156张图片
node.js入门教程(B站黑马程序员)_第157张图片
node.js入门教程(B站黑马程序员)_第158张图片

5.2 身份认证

node.js入门教程(B站黑马程序员)_第159张图片
node.js入门教程(B站黑马程序员)_第160张图片
node.js入门教程(B站黑马程序员)_第161张图片

5.3 Session 认证机制

node.js入门教程(B站黑马程序员)_第162张图片
node.js入门教程(B站黑马程序员)_第163张图片
node.js入门教程(B站黑马程序员)_第164张图片
node.js入门教程(B站黑马程序员)_第165张图片
node.js入门教程(B站黑马程序员)_第166张图片
node.js入门教程(B站黑马程序员)_第167张图片
node.js入门教程(B站黑马程序员)_第168张图片

5.4 在 Express 中使用 Session 认证

node.js入门教程(B站黑马程序员)_第169张图片
node.js入门教程(B站黑马程序员)_第170张图片
node.js入门教程(B站黑马程序员)_第171张图片
node.js入门教程(B站黑马程序员)_第172张图片
node.js入门教程(B站黑马程序员)_第173张图片

5.5 JWT 认证机制

node.js入门教程(B站黑马程序员)_第174张图片
在这里插入图片描述
node.js入门教程(B站黑马程序员)_第175张图片
node.js入门教程(B站黑马程序员)_第176张图片
node.js入门教程(B站黑马程序员)_第177张图片
node.js入门教程(B站黑马程序员)_第178张图片

5.6 在 Express 中使用 JWT

node.js入门教程(B站黑马程序员)_第179张图片
node.js入门教程(B站黑马程序员)_第180张图片
node.js入门教程(B站黑马程序员)_第181张图片
node.js入门教程(B站黑马程序员)_第182张图片
node.js入门教程(B站黑马程序员)_第183张图片
node.js入门教程(B站黑马程序员)_第184张图片
node.js入门教程(B站黑马程序员)_第185张图片

七、 项目【开发API接口】

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

你可能感兴趣的:(node.js,前端,javascript)