Home >Web Front-end >JS Tutorial >This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

青灯夜游
青灯夜游forward
2023-01-12 20:28:2021028browse

This article uses a lot of code and illustrations to give you an in-depth analysis of Node.js. The main content includes modular processing, basic application of packages, Express, cross-domain, operating Mysql database, etc. I hope it will be helpful to everyone!

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text). Introduction to Node.jsarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) What is Node.jsarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

Node.js is a js that calls the built-in ApI and is based on the Chrome V8 engine. Regarding the environment, I have summarized some scattered knowledge points locally before, and I will integrate them and send them out today.

Official website address: https://nodejs.org/zh-cn/

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) What can Node.js doarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

① Based on the Express framework (http://www.expressjs.com.cn/), Web applications can be quickly built. [Related tutorial recommendations: nodejs video tutorial, Programming teaching]

②Based on the Electron framework (https://electronjs.org/) , you can build cross-platform desktop applications

③Based on the restify framework (http://restify.com/), you can quickly build API interface projects

④Read and write And operate database, create practical command line tools to assist front-end development, etc...

##This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) Node.js installationarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

Download link: https://nodejs.org/en/

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

    ##LTS
  • : Long-term stable version
  • Current
  • :Early adopter version
View version number

:node –v

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

Learning route: JavaScript basic syntax Node.js built-in API modules (fs, path, http, etc.) Third-party API modules (express, mysql, etc.)

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).4 Use of Node.jsarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>Command

: node js file name

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

Terminal Shortcut keys

: ①Use the ↑ key to quickly locate the last executed command

②Use the tab key to quickly complete the path

③Use The esc key can quickly clear the currently entered commands

④Enter the cls command to clear the terminal

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text). Modular processingarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) What is modularityarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)##Definition

: Simplify complex problems and divide them into small problems.

Modularization in the field of programming is to obey fixed rules and split a large file into multiple small modules# that are independent and interdependent ##The benefits of modularizing the code:

Improves the reusability of the code

Improves the reusability of the code Maintainability
  • can be loaded on demand
This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) Built-in modulesDefinition: Officially provided by Node.js, such as article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>fs, http, path

##This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) fs file system module

(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) Basic usage
// 引用内部模块
const fs = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;fs&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

// 文件读取
fs.readFile(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;../files/test-fs.txt&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;utf-8&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (err, results) => {
    if (err) return console.log(err.message);// 错误信息err null
    console.log(results);
})

// 文件写入
fs.writeFile(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;../files/test-fs.txt&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;Node.js&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;utf-8&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (err) => {
    if (err) return console.log(err.message);
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;写入文件成功!&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})

Note

readFilecan only read existing files The file

  • writeFile already has a file to write, then create a file with the same name, and then write the file
  • readFile needs to be written in writeFile
  • Read later, otherwise an error will occur
  • (This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) Prevent dynamic splicing
## The #node

command automatically splices the current path and the This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)js script file path

regardless of
    .\day always review this path
  • We can use Absolute pathImprovement
(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) Path problem

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

./ represents the current directory ../
represents the parent directory
    ../..
  • represents the grandfather directory is dynamically spliced, and the header cannot appear ./ . ./, otherwise splicing fails /…/
  • ##This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) path built-in module

Definition: SplicingAbsolute path
  • path.join()
  • path.basename()
  • path.extname()
const fs = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;fs&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

const path = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;path&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

const fpath = path.join(__dirname, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/../files/test-fs.txt&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

fs.readFile(fpath, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;utf-8&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (err, results) => {
    console.log(__dirname);
    console.log(path.basename(fpath, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;.txt&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;));
    console.log(path.extname(fpath));

    if (err) return console.log(err.message);
    console.log(results);
})
// test-fs
// .txt
// Node.js

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) http内置模块

定义Node.js提供创建web服务器

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) 初始化
// 导入http模块
const http = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

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

//绑定request事件,监听客户端请求
server.on(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;request&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    let str = `路径 ${req.url} 方法 ${req.method}`;
    console.log(str);
    // 向客户端发送中文前,设置响应头
    res.setHeader(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;Content-Type&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;text/html;charset=utf-8&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
    res.end(str);
})


//启动服务器
server.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})
(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) web服务器

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

  • 根据浏览器访问的url地址不同,返回相应的绝对路径
const fs = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;fs&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const http = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const path = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;path&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const server = http.createServer();

let fpath = &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;;
server.on(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;request&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    if (req.url === &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;) {
        fpath = path.join(__dirname + &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/../files/clock/index.html&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
        console.log(__dirname);
        console.log(fpath);
    }
    else {
        fpath = path.join(__dirname + &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/../files/clock&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9; + req.url);
    }
    fs.readFile(fpath, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;utf-8&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (err, results) => {
        if (err) res.end(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;404 not find&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
        res.end(results);
    })
})

server.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})
This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 自定义模块article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

定义:用户自定义的js模块

//引入本地文件
const custom = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;./0This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)-node.js的使用&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

注意:自定义模块开头必须有./ …/

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).4 外部模块article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

定义:由第三方提供,使用前需要下载

//下载外部导入
const moment = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;moment&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

监听nodemon

npm i nodemon -g

代替node使用nodedmon每次修改内容不需要重启服务器,自动监听

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).5 模块化处理article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

模块作用域定义:和函数一致,当前模块定义的方法、变量,只能在当前模块访问,防止变量污染

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

暴露:通过module.exports或者exports暴露出去,使用 require() 方法导入模块时,导入的结果,永远以module.exports 指向的对象为准

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).6 加载机制article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

定义一次加载缓存,从缓存加载 内置模块加载优先级MAX

三、包的基本应用article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

:概念像node.js的第三方模块,包是基于内置模块封装出来的,提供了更高级、更方便的 API,极大的提高了开发效率

npm: 包管理工具

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 使用流程article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>
  • npm安装包
  • js导入包
  • 根据开发文档使用包
// npm i moment
const moment = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;moment&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const date = moment().format(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;YYYY-MM-DD HH:mm:ss&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
console.log(date);//This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)0This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)-09-This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)0 This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)0:4This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text):This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)4
This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 版本问题article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

包的版本号是以“点分十进制”形式进行定义的,总共有三位数字,例如 This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)4.0
其中每一位数字所代表的的含义如下:

  • 第This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)位数字:大版本

  • 第This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)位数字:功能版本

  • 第This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)位数字:Bug修复版本

    版本号提升的规则:只要前面的版本号增长了,则后面的版本号归零。

npm i comment@This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)
This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 参数问题article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

  • node_modules 文件夹用来存放所有已安装到项目中的包。require() 导入第三方包时,就是从这个目录中查找并加载包。
  • package-lock.json 配置文件用来记录 node_modules 目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等。
  • package.json项目的名称、版本号、描述等、用到了哪些包、开发期间使用的包、部署使用的包
    • devDependencies :开发依赖
    • dependencies :核心依赖
  • 注意:程序员不要手动修改 node_modules 或 package-lock.json 文件中的任何代码,npm 包管理工具会自动维护它们,今后在项目开发中,一定要把 node_modules 文件夹,添加到 .gitignore 忽略文件中
This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).4 npm命令article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>
//安装包 
npm i moment
//安装全局包
npm i 包名 -g
//安装包到开发阶段到devDependencies
npm i 包名 -D
//安装所有依赖包 
npm install
//卸载包 
npm uninstall moment
//查看已经安装的局部包
npm ls
//查看全局安装的包
npm ls -g

查看包命令:https://blog.csdn.net/qq_4This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)664096/article/details/This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)797This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)60

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).5 下载镜像article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

//查看当前npm镜像
npm config get registry
//nrm镜像工具,安装为全局镜像
nrm ls
//切换镜像
nrm use taobao

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).6 开发自己的包article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

一个规范的包,它的组成结构,必须符合以下 This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 点要求:

  • 包必须以单独的目录而存在
  • 包的顶级目录下要必须包含 package.json 这个包管理配置文件
  • package.json 中必须包含 name,version,main 这三个属性,分别代表包的名字、版本号、包的入口

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

发布包到npm

  • 镜像切换到npm上
  • npm login登录
  • 发布包 npm publish
  • 删除包 npm unpublish 包名 --force

资源

  • https://www.npmjs.com/ 网站上搜索自己所需要的包
  • https://registry.npmjs.org/ 服务器上下载自己需要的包
四、Expressarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>4.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 简介article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

Express:基于Node.js http进一步封装,更加高级的Web开发框架

对于前端程序员来说,最常见的两种服务器,分别是:

  • Web 网站服务器:专门对外提供 Web 网页资源的服务器
  • API 接口服务器:专门对外提供 API 接口的服务器
4.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 基本使用article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>
//导入包
const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
//创建服务器
const app = express();

app.get(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/user&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    res.send({ 男: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)8&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, age: This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)8 });
})

app.post(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/user&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    res.send(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;post请求&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})

app.get(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    //req.query  ?name=zs&age=This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)8  这种数据
    //http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)?name=zs&age=This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)8
    console.log(req.query);
})
app.post(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/:id&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    //动态匹配参数
    console.log(req.params);
})

//启动服务器
app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})
4.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 托管静态资源article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

定义通过路径暴露文件,省去文件路径的描写

const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

const app = express();

//托管静态资源,不需要访问
app.use(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/public&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, express.static(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;../files/clock&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;));

app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})

推荐VScode插件:postcode

Express 的中文官网: http://www.expressjs.com.cn/

4.4 路由article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

定义:客户端与服务器映射关系

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

4.4.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 简单挂载

//导入包
const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
//创建服务器
const app = express();

app.get(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/user&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    res.send({ 男: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)8&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, age: This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)8 });
})

app.post(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/user&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    res.send(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;post请求&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})
//启动服务器
app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})

4.4.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 模块化路由

为了方便对路由进行模块化的管理,Express 不建议将路由直接挂载到 app 上,而是推荐将路由抽离为单独的模块

将路由抽离为单独模块的步骤如下:

  • 创建路由模块对应的 .js 文件

  • 调用express.Router()函数创建路由对象

  • 向路由对象上挂载具体的路由

  • 使用 module.exports 向外共享路由对象

  • 使用app.use()函数注册路由模块

创建路由对象

const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);//导入包

const router = express.Router();//创建路由对象

//绑定路由规则
router.get(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/user/list&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    res.send(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;user list message&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})

router.post(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/user/add&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    res.send(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;user add message&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})

//向外导出路由对象
module.exports = router;

使用路由对象

const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const app = express();

const router = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;./This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)-模块化路由&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

app.use(router);

app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})
4.5 中间件article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

中间件:与路由处理函数不同,必须包含next参数

4.5.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 基本使用

const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const app = express();
//全局中间件的简化形式
app.use((req, res, next) => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;正在使用全局中间件&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
    next();
});

app.get(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;,(req, res) => {
    res.send(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;Get message&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})


app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})

注意

  • 多个中间件共享req,res,上游设置好,下游的中间件/路由使用

  • 中间件定义先后顺序执行

  • 局部生效的中间件,定义在

    • app.get(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;,中间件,(req, res) => {
          res.send(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;Get message&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
      })
    • This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

  • 路由之前调用中间件

  • next()函数不能忘,后面不用写内容

4.5.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 中间件分类

(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text))应用
const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const app = express();

//全局中间件
app.use((req, res, next) => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;全局中间件&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
    next();
})
//局部中间件
function mw(req, res, next) {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;局部中间件&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
    next();
}

app.get(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, mw, (req, res) => {
    res.send(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;server is visting&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})
app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})
(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text))路由

定义:绑定到 express.Router() 实例上的中间件

(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text))错误

定义捕获项目错误,防止出错,在所有路由之后定义

const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const app = express();


app.get(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    throw new Error(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;服务器出错&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
    res.send(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;server is visting&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})


//全局中间件
app.use((err, req, res, next) => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;Error!&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9; + err.message);
    res.send(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;Error!&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9; + err.message);
    next();
})

app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})
//Error!服务器出错
(4)Express 内置

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const app = express();

// express.json()解析JSON请求体
app.use(express.json());

//解析application/x-www-
app.use(express.urlencoded({ extended: false }));

app.post(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/user&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    console.log(req.body);
})

app.post(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/book&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    console.log(req.body);
})

app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})
// http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)
// { name: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;zs&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, age: This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)8 }
// [Object: null prototype] { name: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;西游记&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9; }
(5)第三方
  • npm install body-parse
  • require导入
  • app.use()为全局
const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const app = express();

const parser = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;body-parser&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

app.use(parser.urlencoded({ extended: false }));

app.post(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/book&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    console.log(req.body);
})

app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})

注意:Express 内置的 express.urlencoded 中间件,就是基于 body-parser 这个第三方中间件进一步封装出来的。

4.6 自定义中间件article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

封装中间件

const querystring = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;querystring&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

function parsebody(req, res, next) {
    let str = &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;;
    req.on(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;data&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (result) => {
        str += result;
    })
    req.on(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;end&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, () => {
        const body = querystring.parse(str);
        req.body = body;
        next();
    })
}

module.exports = parsebody;

测试中间件

const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const app = express();
const parsebody = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;./This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)4-自定义中间件&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

app.use(parsebody);

app.post(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/user&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    res.send(req.body);
    console.log(req.body);

})

app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})
4.7 接口article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>
const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
const app = express();

const router = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;./This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)5-接口问题&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
app.use(router);

app.listen(80, () => {
    console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
})

4.7.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) GET接口

const express = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;express&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

const apiRouter = express.Router();

apiRouter.get(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/user&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    const query = req.query;
    res.send({
        status: 0,
        msg: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;GET 请求成功&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;,
        data: query
    });
})
module.exports = apiRouter;

4.7.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) POST接口

apiRouter.use(express.urlencoded({ extended: false }));

apiRouter.post(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;/user&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, (req, res) => {
    const body = req.body;
    res.send({
        status: 0,
        msg: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;POST 请求成功&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;,
        data: body
    });
})

4.7.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) PUT接口

4.7.4 DELETE接口

4.7.5 区别

https://blog.csdn.net/qq_4This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)85/article/details/This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)985This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)94

https://zhuanlan.zhihu.com/p/This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)5454697

五、跨域article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>5.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) CORSarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

5.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 原理

概念:由Http响应头构成,决定浏览器是否阻止js代码获取资源,在服务器端配置

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

5.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 响应头

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

//只允许特定的域名访问、*代表全部
    res.setHeader(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;Access-Control-Allow-Origin&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;http://www.baidu.com&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
//配置请求头信息
    res.setHeader(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;Access-Control-Allow-Headers&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;Content-Type,X-Custom-Header&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
//配置请求头方法 * 代表全部
    res.setHeader(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;Access-Control-Allow-Methods&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;GET,POST,DELETE,PUT&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);

5.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 分类

(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text))简单请求
  • 请求方式:GET、POST、HEAD
  • HTTP 头部信息不超过以下几种字段无自定义头部字段、Accept、Accept-Language、Content-Language、DPR、Downlink、Save-Data、Viewport-Width、Width 、Content-Type(只有三个值application/x-www-form-urlencoded、multipart/form-data、text/plain)
  • 客户端与服务器只发送一次请求
(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text))预检请求
  • 请求方式:GET、POST、HEAD之外的方式
  • 自定义头部字段
  • OPTION预检,成功后发送带有数据的请求
5.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) JSONParticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

概念:只支持GET请求

六、Mysql数据库article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

定义组织存储管理数据仓库

6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) SQL命令article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 查询

select * from userswhere id>This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) and id <h4>
<a id="6This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)__89This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)"></a>6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 插入</h4><pre class="brush:php;toolbar:false">insert into users(username,password) values(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;jackThis article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;,This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;666This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;)

6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 更新

update users set password=This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;666666This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;where username=This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;jackThis article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;

6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).4 删除

delete from users
where id=9
6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) Node.js使用article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 初始化

  • 导包:npm i mysql
//引入mysql
const mysql = require(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;mysql&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
//建立数据库连接
const db = mysql.createPool({
    url: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)7.0.0.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;,//数据库IP地址
    user: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;root&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;,//账号
    password: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)456&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;,//密码
    database: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;test_db&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;//操作哪一个数据库
});

6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 查询

const queryStr = &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;select * from users&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;;
db.query(queryStr, (err, results) => {
    if (err) return console.log(err.message);
    console.log(results);
})

PS E:\FED\js\node.js\node.js—资料\day总复习\code> node .\This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)8-mysql操作.js
[
  RowDataPacket { id: This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text), username: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;zz&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, password: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, status: 0 },
  RowDataPacket { id: This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text), username: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;ls&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, password: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;abc&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, status: 0 },
  RowDataPacket { id: 4, username: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;jony&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, password: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;456&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, status: 0 }
]

6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 插入

const user = { username: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;superman&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, password: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;jknad&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9; };
const insertStr = &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;insert into users set ?&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;;
db.query(insertStr, user, (err, results) => {
    if (err) return console.log(err.message);
    if (results.affectedRows == This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) {
        console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;插入数据成功&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
    }
})
//插入数据成功

6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).4 更新

const user = { id: This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)0, username: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;super&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;, password: &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)456&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9; };
const updateStr = &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;update users set ? where id=?&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;;
db.query(updateStr, [user, user.id], (err, results) => {
    if (err) return console.log(err.message);
    if (results.affectedRows == This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) {
        console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;更新数据成功&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
    }
})

6.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).5 删除

(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) 一般删除
const deleteStr = &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;delete from users where id=?&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;;
db.query(deleteStr, This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)0, (err, results) => {
    if (err) return console.log(err.message);
    if (results.affectedRows == This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) {
        console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;删除成功&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
    }
})
(This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) 标记删除
const deleteStr = &#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;update users set status=This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) where id=?&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;;
db.query(deleteStr, This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)0, (err, results) => {
    if (err) return console.log(err.message);
    if (results.affectedRows == This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)) {
        console.log(&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;删除成功&#This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)9;);
    }
})
七、前后端的身份认证article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>7.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) Web开发模式article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

7.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 基于服务端渲染的传统 Web 开发模式

概念:服务端在后台拼接html页面,发送给客户端,不需要ajax

特点

  • 前端耗时少
  • 有利于SEO
  • 占用服务端资源
  • 不利于前后端分离开发

7.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) 基于前后端分离的新型 Web 开发模式

概念:后端提供API接口,前端通过ajax调用接口

特点

  • 开发体验好
  • 用户体验好
  • 减轻服务器渲染压力
  • 不利于SEO

不谈业务场景而盲目选择使用何种开发模式都是耍流氓

  • For example, enterprise-level website, the main function is display without complex interaction, and requires good SEO, then we need to use server Side rendering
  • And similar to Backend management project, interactivity is relatively strong, there is no need to consider SEO, then you can use Front-end and back-end separation Development model
  • In addition, the specific development model to be used is not absolute. In order to take into account both the rendering speed of the homepage and the development efficiency of front-end and back-end separation, some websites adopt First screen server-side rendering of other pagesDevelopment model with front-end and back-end separation
##7.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) Identity Authenticationarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

Concept: Authenticate the customer’s identity through different means (Verification code, password, face, fingerprint...)

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

7.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) Session authentication mechanismarticle will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)>

7.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) Cookie

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

Cookie: Stored in the browser as a string not exceeding 4KB, stored in the form of key-value pair

    Automatically sent
  • Independent domain name
  • Expiration time limit
  • 4KB limit
  • Easy to forge, not recommended to store
  • private data

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

7.This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text).This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text) Session

Core:Member Card POS Machine Authentication

This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text)

  • npm install express-session
For more node-related knowledge, please visit:

nodejs tutorial!

The above is the detailed content of This article will give you an in-depth understanding of Node.js (detailed explanation with pictures and text). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete