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

一、初识node.js

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

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

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 文件系统模块

2.2 读取指定文件中的内容



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


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

三、path 路径模块

3.1 什么是 path 路径模块

3.2 路径拼接


3.3 获取路径中的文件名


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


四、http 模块

4.1 什么是 http 模块

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

4.3 服务器相关的概念



4.4 创建最基本的 web 服务器








代码实现:

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

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


五、Node.js 中的模块化

1 Node.js 中模块的分类

2 加载模块

3 Node.js 中的模块作用域


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





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

5 Node.js 中的模块化规范

六、 Express

1. 初识 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

##

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

5. 前后端的身份认证

5.1 Web 开发模式





5.2 身份认证



5.3 Session 认证机制







5.4 在 Express 中使用 Session 认证





5.5 JWT 认证机制






5.6 在 Express 中使用 JWT







七、 项目【开发API接口】

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

node.js入门教程(B站黑马程序员)相关推荐

  1. Node.js 入门教程 23 使用 npm 的语义版本控制 24 卸载 npm 软件包 25 npm 全局或本地的软件包

    Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录 Node.js 入门教程 23 使用 npm 的语义版本控制 24 ...

  2. Node.js 入门教程 6 V8 JavaScript 引擎

    Node.js 入门教程 Node.js官方入门教程 Node.js中文网 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录 Node.js 入门教程 6 V8 JavaScript 引擎 6 ...

  3. js读取http chunk流_极简 Node.js入门 教程双工流

    点击上方蓝字关注我们 小编提示: 本文是由 ICBU 的谦行小哥哥出品,我们会持续发出极简 Node.js入门 教程,敬请期待哦,文中有比较多的演示代码建议横屏阅读 双工流就是同时实现了 Readab ...

  4. C++学习笔记(B站黑马程序员C++教程)

    C++学习笔记(B站黑马程序员C++教程) 简介 视频链接https://www.bilibili.com/video/BV1kV411U7Ub?spm_id_from=333.999.0.0 建议用 ...

  5. B站黑马程序员pink老师讲的JavaScript代码

    B站黑马程序员pink讲课的JavaScript代码(部分代码) <!DOCTYPE html> <html lang="en"> <head> ...

  6. Python学习笔记(3)---B站黑马程序员

    Python学习笔记(1)-B站黑马程序员 Python学习笔记(2)-B站黑马程序员 Python学习笔记(3)-B站黑马程序员 文章目录 五.项目实战--飞机大战 001-Pycharm中安装py ...

  7. Visual Studio 2022版本 B站黑马程序员C++自学分享-第一阶段(主要包括:自己敲的代码、通过注释来备注上自己对代码的理解)

    Visual Studio 2022版本 B站黑马程序员C++自学分享-第一阶段(主要包括:自己敲的代码.通过注释来备注上自己对代码的理解) 前言 一.第一阶段 C++基础语法入门 对C++有初步了解 ...

  8. Visual Studio 2022版本 B站黑马程序员C++自学分享-第三阶段(1)(主要包括:自己敲的代码、通过注释来备注上自己对代码的理解)

    Visual Studio 2022版本 B站黑马程序员C++自学分享-第三阶段(1)(主要包括:自己敲的代码.通过注释来备注上自己对代码的理解) 前言 三.第三阶段 C++提高编程 介绍C++泛型编 ...

  9. Python学习笔记(1)---B站黑马程序员

    Python学习笔记(1)-B站黑马程序员 Python学习笔记(2)-B站黑马程序员 Python学习笔记(3)-B站黑马程序员 文章目录 Linux基础 Python基础 一.Python介绍 0 ...

  10. html, css学习笔记,自用(B站黑马程序员pink老师)

    附上教学视频链接黑马程序员pink老师前端入门教程 该博文是自己随手记的上述视频笔记 跳转到css, p61 P18 <div> </div>一行一个,<span> ...

最新文章

  1. 为VSFTP用户指定登录后的目录.原创测试通过.
  2. IIS7 / IIS7.5 URL 重写 HTTP 重定向到 HTTPS(转)
  3. JavaScript装逼指南
  4. 如何用javac 和java 编译运行整个Java工程
  5. 在C ++应用程序中使用Designer UI文件
  6. 文本输入框内实时检测输入的字数
  7. .NETer,如何用.NET Core 3.0武装自己?这样学效率提高10倍!
  8. 大数据时代下的“管理”要素数据化
  9. 【链表】单链表的排序(归并排序)
  10. python—gc.collect()清楚内存
  11. Eclipse中输入点号(.)不提示类成员(函数、字段)的解决办法
  12. GB28181国标流媒体服务(LiveGBS)-支持海康8700等联网网关通过接入实现web端无插件直播
  13. android 有序map,给HashMap排序,使之成为有序Map
  14. 【IoT】NFC APDU 使用基础浅析
  15. 职称计算机pptt应用模块,2016年职称计算机考试PowerPoint单选练习题4
  16. 极大似然估计法的理解和用途
  17. python 电压 谐波_教你计算总谐波失真(THD)
  18. 结合新的实际深化对自主创新的认识
  19. 地铁照明中的智能照明控制系统
  20. 我的电力行业求职经历(供电局电力设计院面经

热门文章

  1. 安装VMware,主机键盘不能用解决方法
  2. oracle12c集群安装—grid安装
  3. 关于win10优化问题
  4. 人生 第一页HTML
  5. java导论pdf下载,人工智能导论 PDF 下载
  6. 自动控制原理复习——第二章 控制系统的数学模型,系统框图简化,信号流图,梅森公式,控制系统的传递函数(详细介绍)
  7. 【交通流理论拟合】-速度流量拟合
  8. EDG 官宣 Clearlove(明凯)正式退役成为教练,你有什么想说的?
  9. 微软windows10易升_你可能不知道,微软系统升级最新版还可以这么简单!
  10. 《创新者的窘境》读后感