Rumah > hujung hadapan web > tutorial js > Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

青灯夜游
Lepaskan: 2023-01-13 20:23:18
ke hadapan
21014 orang telah melayarinya

Artikel ini akan memberi anda analisis mendalam tentang Node.js melalui banyak kod dan gambar rajah Kandungan utama termasuk pemprosesan modular, aplikasi asas pakej, Express, merentas domain, mengendalikan pangkalan data Mysql, dll. I. harap ia akan membantu semua orang!

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Pengenalan kepada Node.jsini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Apakah itu Node.js<.>ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>

ialah persekitaran berjalan js yang memanggil Node.js terbina dalam dan berdasarkan enjin ApI saya telah meringkaskan beberapa pengetahuan yang tersebar mata secara tempatan sebelum ini. Letakkannya bersama-sama dan hantarkannya hari ini. Chrome V8

Alamat tapak web rasmi: https://nodejs.org/zh-cn/

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Apa yang boleh dilakukan oleh Node.js ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>① Berdasarkan rangka kerja

(http://www.expressjs.com.cn/), anda boleh membina aplikasi Web dengan cepat. [Cadangan tutorial berkaitan: Express tutorial video nodejs, Pengajaran pengaturcaraan]

②Berdasarkan rangka kerja

(https://electronjs.org/), anda boleh bina silang- Aplikasi desktop platform Electron

③ adalah berdasarkan rangka kerja

(http://restify.com/), yang boleh membina projek antara muka API dengan pantas restify

④ baca , tulis dan kendalikan

dan cipta alatan baris Perintah praktikal untuk membantu pembangunan bahagian hadapan, dsb...数据库

Pemasangan Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Node.jsini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>

Pautan muat turun: https:// nodejs.org/en/

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

  • LTS: Panjang Versi Stabil Istilah
  • Semasa: Versi pengguna awal

: nod –v查看版本号

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

Laluan pembelajaran: Sintaks asas JavaScript + Modul API terbina dalam Node.js (fs, path, http, dll.) + modul API pihak ketiga (express, mysql, dll.)

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).4 Penggunaan Node.js ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>

: nama fail node js 命令

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

Kekunci pintasan terminal :

①Gunakan kekunci ↑ untuk mencari dengan cepat Pergi ke perintah yang terakhir dilaksanakan

②Gunakan kekunci tab untuk melengkapkan laluan dengan cepat

③Gunakan kekunci esc untuk mengosongkan perintah yang sedang dimasukkan dengan cepat

④Masukkan arahan cls, anda boleh mengosongkan terminal

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks). Pemprosesan modular ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Apakah modulariti ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

Definisi: Permudahkan masalah kompleks dan bahagikan kepada masalah yang lebih kecil. dalam medan pengaturcaraan ialah 模块化, membelah fail besar kepada berbilang bebas dan 遵守固定的规则 互相依赖小模块

Faedah memodulasi kod:

    Meningkatkan kebolehgunaan semula kod
  • Meningkatkan kebolehselenggaraan kod
  • Boleh merealisasikan pemuatan atas permintaan
Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Modul terbina dalam ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>

Definisi : Disediakan secara rasmi oleh Node.js, seperti fs、http、path

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) modul sistem fail fs

(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) Penggunaan asas
// 引用内部模块
const fs = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;fs&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

// 文件读取
fs.readFile(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;../files/test-fs.txt&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;utf-8&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (err, results) => {
    if (err) return console.log(err.message);// 错误信息err null
    console.log(results);
})

// 文件写入
fs.writeFile(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;../files/test-fs.txt&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Node.js&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;utf-8&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (err) => {
    if (err) return console.log(err.message);
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;写入文件成功!&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk

Nota

  • Hanya boleh membaca fail sedia adareadFile
  • Kandungan yang akan ditulis sudah mempunyai fail, buat fail dengan nama yang sama, dan kemudian tulis fail itu writeFile
  • perlu dibaca selepas readFile, jika tidak, ralat berlakuwriteFile
(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) Cegah penyambungan dinamik

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

  • arahan secara automatik menyambung laluan semasa dengan node, tanpa mengira js脚本文件路径.day总复习这个路径
  • Kita boleh menggunakan
  • untuk menambah baik 绝对路径

. Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) Masalah laluan
  • mewakili direktori semasa ./ mewakili direktori induk ../ mewakili direktori datuk ../..
  • dinamik Apabila penyambungan,
  • tidak boleh muncul dalam pengepala, jika tidak ./ ../ penyambungan gagal /…/

laluan Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) modul terbina dalam

Definisi: penyambungan绝对路径

  • path.join()
  • path.basename()
  • path.extname()
const fs = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;fs&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

const path = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;path&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

const fpath = path.join(__dirname, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/../files/test-fs.txt&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

fs.readFile(fpath, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;utf-8&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (err, results) => {
    console.log(__dirname);
    console.log(path.basename(fpath, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;.txt&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;));
    console.log(path.extname(fpath));

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

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) http内置模块

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

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) 初始化
// 导入http模块
const http = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

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

//绑定request事件,监听客户端请求
server.on(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;request&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    let str = `路径 ${req.url} 方法 ${req.method}`;
    console.log(str);
    // 向客户端发送中文前,设置响应头
    res.setHeader(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Content-Type&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;text/html;charset=utf-8&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
    res.end(str);
})


//启动服务器
server.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk
(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) web服务器

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

  • 根据浏览器访问的url地址不同,返回相应的绝对路径
const fs = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;fs&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const http = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const path = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;path&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const server = http.createServer();

let fpath = &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;;
server.on(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;request&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    if (req.url === &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;) {
        fpath = path.join(__dirname + &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/../files/clock/index.html&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
        console.log(__dirname);
        console.log(fpath);
    }
    else {
        fpath = path.join(__dirname + &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/../files/clock&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9; + req.url);
    }
    fs.readFile(fpath, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;utf-8&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (err, results) => {
        if (err) res.end(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;404 not find&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
        res.end(results);
    })
})

server.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk
Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 自定义模块

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

//引入本地文件
const custom = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;./0Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)-node.js的使用&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
Salin selepas log masuk

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

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

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).4 外部模块

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

//下载外部导入
const moment = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;moment&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
Salin selepas log masuk

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

监听nodemon

npm i nodemon -g
Salin selepas log masuk

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

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).5 模块化处理

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

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

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

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).6 加载机制

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

三、包的基本应用

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

npm: 包管理工具

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 使用流程
  • npm安装包
  • js导入包
  • 根据开发文档使用包
// npm i moment
const moment = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;moment&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const date = moment().format(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;YYYY-MM-DD HH:mm:ss&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
console.log(date);//Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)0Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)-09-Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)0 Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)0:4Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks):Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)4
Salin selepas log masuk
Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 版本问题

包的版本号是以“点分十进制”形式进行定义的,总共有三位数字,例如 Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)4.0
其中每一位数字所代表的的含义如下:

  • 第Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)位数字:大版本

  • 第Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)位数字:功能版本

  • 第Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)位数字:Bug修复版本

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

npm i comment@Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)
Salin selepas log masuk
Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 参数问题

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

  • node_modules 文件夹用来存放所有已安装到项目中的包。require() 导入第三方包时,就是从这个目录中查找并加载包。
  • package-lock.json 配置文件用来记录 node_modules 目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等。
  • package.json项目的名称、版本号、描述等、用到了哪些包、开发期间使用的包、部署使用的包
    • devDependencies :开发依赖
    • dependencies :核心依赖
  • 注意:程序员不要手动修改 node_modules 或 package-lock.json 文件中的任何代码,npm 包管理工具会自动维护它们,今后在项目开发中,一定要把 node_modules 文件夹,添加到 .gitignore 忽略文件中
Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).4 npm命令
//安装包 
npm i moment
//安装全局包
npm i 包名 -g
//安装包到开发阶段到devDependencies
npm i 包名 -D
//安装所有依赖包 
npm install
//卸载包 
npm uninstall moment
//查看已经安装的局部包
npm ls
//查看全局安装的包
npm ls -g
Salin selepas log masuk

查看包命令:https://blog.csdn.net/qq_4Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)664096/article/details/Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)797Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)60

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).5 下载镜像

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

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

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).6 开发自己的包

一个规范的包,它的组成结构,必须符合以下 Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 点要求:

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

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

发布包到npm

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

资源

  • https://www.npmjs.com/ 网站上搜索自己所需要的包
  • https://registry.npmjs.org/ 服务器上下载自己需要的包
四、Express4.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 简介

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

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

  • Web 网站服务器:专门对外提供 Web 网页资源的服务器
  • API 接口服务器:专门对外提供 API 接口的服务器
4.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 基本使用
//导入包
const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
//创建服务器
const app = express();

app.get(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/user&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    res.send({ 男: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)8&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, age: Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)8 });
})

app.post(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/user&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    res.send(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;post请求&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})

app.get(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    //req.query  ?name=zs&age=Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)8  这种数据
    //http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)?name=zs&age=Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)8
    console.log(req.query);
})
app.post(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/:id&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    //动态匹配参数
    console.log(req.params);
})

//启动服务器
app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk
4.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 托管静态资源

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

const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

const app = express();

//托管静态资源,不需要访问
app.use(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/public&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, express.static(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;../files/clock&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;));

app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk

推荐VScode插件:postcode

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

4.4 路由

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

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

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

4.4.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 简单挂载

//导入包
const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
//创建服务器
const app = express();

app.get(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/user&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    res.send({ 男: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)8&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, age: Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)8 });
})

app.post(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/user&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    res.send(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;post请求&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
//启动服务器
app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk

4.4.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 模块化路由

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

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

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

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

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

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

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

创建路由对象

const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);//导入包

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

//绑定路由规则
router.get(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/user/list&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    res.send(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;user list message&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})

router.post(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/user/add&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    res.send(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;user add message&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})

//向外导出路由对象
module.exports = router;
Salin selepas log masuk

使用路由对象

const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const app = express();

const router = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;./Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)-模块化路由&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

app.use(router);

app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk
4.5 中间件

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

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

4.5.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 基本使用

const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const app = express();
//全局中间件的简化形式
app.use((req, res, next) => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;正在使用全局中间件&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
    next();
});

app.get(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;,(req, res) => {
    res.send(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Get message&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})


app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk

注意

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

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

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

    • app.get(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;,中间件,(req, res) => {
          res.send(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Get message&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
      })
      Salin selepas log masuk
    • Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

  • 路由之前调用中间件

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

4.5.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 中间件分类

(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks))应用
const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const app = express();

//全局中间件
app.use((req, res, next) => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;全局中间件&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
    next();
})
//局部中间件
function mw(req, res, next) {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;局部中间件&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
    next();
}

app.get(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, mw, (req, res) => {
    res.send(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;server is visting&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk
(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks))路由

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

(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks))错误

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

const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const app = express();


app.get(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    throw new Error(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;服务器出错&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
    res.send(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;server is visting&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})


//全局中间件
app.use((err, req, res, next) => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Error!&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9; + err.message);
    res.send(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Error!&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9; + err.message);
    next();
})

app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
//Error!服务器出错
Salin selepas log masuk
(4)Express 内置

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const app = express();

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

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

app.post(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/user&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    console.log(req.body);
})

app.post(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/book&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    console.log(req.body);
})

app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
// http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)
// { name: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;zs&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, age: Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)8 }
// [Object: null prototype] { name: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;西游记&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9; }
Salin selepas log masuk
(5)第三方
  • npm install body-parse
  • require导入
  • app.use()为全局
const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const app = express();

const parser = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;body-parser&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

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

app.post(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/book&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    console.log(req.body);
})

app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk

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

4.6 自定义中间件

封装中间件

const querystring = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;querystring&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

function parsebody(req, res, next) {
    let str = &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;;
    req.on(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;data&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (result) => {
        str += result;
    })
    req.on(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;end&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, () => {
        const body = querystring.parse(str);
        req.body = body;
        next();
    })
}

module.exports = parsebody;
Salin selepas log masuk

测试中间件

const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const app = express();
const parsebody = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;./Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)4-自定义中间件&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

app.use(parsebody);

app.post(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/user&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    res.send(req.body);
    console.log(req.body);

})

app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk
4.7 接口
const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
const app = express();

const router = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;./Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)5-接口问题&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
app.use(router);

app.listen(80, () => {
    console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
})
Salin selepas log masuk

4.7.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) GET接口

const express = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;express&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);

const apiRouter = express.Router();

apiRouter.get(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/user&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    const query = req.query;
    res.send({
        status: 0,
        msg: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;GET 请求成功&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;,
        data: query
    });
})
module.exports = apiRouter;
Salin selepas log masuk

4.7.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) POST接口

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

apiRouter.post(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;/user&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, (req, res) => {
    const body = req.body;
    res.send({
        status: 0,
        msg: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;POST 请求成功&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;,
        data: body
    });
})
Salin selepas log masuk

4.7.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) PUT接口

4.7.4 DELETE接口

4.7.5 区别

https://blog.csdn.net/qq_4Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)85/article/details/Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)985Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)94

https://zhuanlan.zhihu.com/p/Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)5454697

五、跨域5.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) CORS

5.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 原理

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

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

5.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 响应头

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

//只允许特定的域名访问、*代表全部
    res.setHeader(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Access-Control-Allow-Origin&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;http://www.baidu.com&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
//配置请求头信息
    res.setHeader(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Access-Control-Allow-Headers&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Content-Type,X-Custom-Header&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
//配置请求头方法 * 代表全部
    res.setHeader(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Access-Control-Allow-Methods&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;GET,POST,DELETE,PUT&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
Salin selepas log masuk

5.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 分类

(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks))简单请求
  • 请求方式: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)
  • 客户端与服务器只发送一次请求
(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks))预检请求
  • 请求方式:GET、POST、HEAD之外的方式
  • 自定义头部字段
  • OPTION预检,成功后发送带有数据的请求
5.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) JSONP

概念:只支持GET请求

六、Mysql数据库

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

6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) SQL命令

6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 查询

select * from userswhere id>Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) and id <5
Salin selepas log masuk

6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 插入

insert into users(username,password) values(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;jack&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;,&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;666&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;)
Salin selepas log masuk

6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 更新

update users set password=&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;666666&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;where username=&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;jack&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;
Salin selepas log masuk

6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).4 删除

delete from users
where id=9
Salin selepas log masuk
6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Node.js使用

6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 初始化

  • 导包:npm i mysql
//引入mysql
const mysql = require(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;mysql&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
//建立数据库连接
const db = mysql.createPool({
    url: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)7.0.0.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;,//数据库IP地址
    user: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;root&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;,//账号
    password: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)456&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;,//密码
    database: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;test_db&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;//操作哪一个数据库
});
Salin selepas log masuk

6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 查询

const queryStr = &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;select * from users&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)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 .\Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)8-mysql操作.js
[
  RowDataPacket { id: Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks), username: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;zz&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, password: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, status: 0 },
  RowDataPacket { id: Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks), username: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;ls&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, password: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;abc&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, status: 0 },
  RowDataPacket { id: 4, username: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;jony&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, password: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;456&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, status: 0 }
]
Salin selepas log masuk

6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 插入

const user = { username: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;superman&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, password: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;jknad&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9; };
const insertStr = &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;insert into users set ?&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;;
db.query(insertStr, user, (err, results) => {
    if (err) return console.log(err.message);
    if (results.affectedRows == Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) {
        console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;插入数据成功&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
    }
})
//插入数据成功
Salin selepas log masuk

6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).4 更新

const user = { id: Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)0, username: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;super&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;, password: &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)456&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9; };
const updateStr = &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;update users set ? where id=?&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;;
db.query(updateStr, [user, user.id], (err, results) => {
    if (err) return console.log(err.message);
    if (results.affectedRows == Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) {
        console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;更新数据成功&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
    }
})
Salin selepas log masuk

6.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).5 删除

(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) 一般删除
const deleteStr = &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;delete from users where id=?&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;;
db.query(deleteStr, Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)0, (err, results) => {
    if (err) return console.log(err.message);
    if (results.affectedRows == Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) {
        console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;删除成功&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
    }
})
Salin selepas log masuk
(Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) 标记删除
const deleteStr = &#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;update users set status=Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) where id=?&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;;
db.query(deleteStr, Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)0, (err, results) => {
    if (err) return console.log(err.message);
    if (results.affectedRows == Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)) {
        console.log(&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;删除成功&#Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)9;);
    }
})
Salin selepas log masuk
七、前后端的身份认证ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>7.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Web开发模式ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>

7.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 基于服务端渲染的传统 Web 开发模式

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

特点

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

7.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) 基于前后端分离的新型 Web 开发模式

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

特点

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

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

  • Sebagai contoh, 企业级网站, fungsi utama dipaparkan tanpa interaksi yang kompleks, dan SEO yang baik diperlukan, maka kita perlu menggunakan 服务器端渲染
  • dan sesuatu seperti 后台管理项目 , 交互性 agak kuat, tidak perlu mempertimbangkan SEO, kemudian anda boleh menggunakan mod pembangunan 前后端分离
  • Selain itu, mod pembangunan khusus yang akan digunakan tidak mutlak, untuk mengambil kira pemaparan halaman utama pada masa yang sama Untuk kelajuan dan kecekapan pembangunan pemisahan bahagian hadapan dan belakang, sesetengah tapak web menggunakan model pembangunan 首屏服务器端渲染 + 其他页面前后端分离
7.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Pengesahan Identitiini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>

Konsep: Sahkan identiti pelanggan melalui cara yang berbeza ()验证码、密码、人脸、指纹...

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

7.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Mekanisme Pengesahan Sesiini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)>

7.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Kuki

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

Kuki: disimpan dalam penyemak imbas tidak lebih daripada Rentetan, disimpan dalam bentuk 4KB键值对

    Dihantar secara automatik
  • Nama domain bebas
  • Had masa tamat tempoh
  • Had 4KB
  • Pemalsuan Mudah, tidak disyorkan untuk storan
  • 隐私数据

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

7.Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks).Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks) Sesi

Teras : 会员卡+pos机认证

Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks)

  • npm install express-session
Untuk lebih banyak pengetahuan berkaitan nod, sila lawati:

tutorial nodejs!

Atas ialah kandungan terperinci Artikel ini akan memberi anda pemahaman yang mendalam tentang Node.js (penjelasan terperinci dengan gambar dan teks). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:csdn.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan