什么是 Express?
Express
是一个快速、不固执己见、极简的 Node.js
Web
框架。它也是迄今为止最流行的 Node.js
Web
框架。
我们可以用 Express 做什么?
Web
应用程序:Express
是一个极简且灵活的 Node.js
Web
应用程序框架,它为 Web
和移动应用程序提供了一组强大的功能API
:借助大量 HTTP
实用方法和中间件,你可以快速轻松地创建强大的 API
。Express
不是像 React
或 Vue
这样的前端框架。 Express
是一个后端框架,它将补充前端框架以构建全栈应用程序
Express 先决条件?
要使用 Express
,我们需要在我们的机器上安装一个可用的 node.js
版本。
你还需要了解 node.js
的基本概念。如果你不具备这些基本知识,可以阅读这个涵盖所有 node.js
设置和基本概念的小系列:https://dev.to/ericchapman/node-js-101-part-1-what-is-node-js-1529
安装和设置 Express
首先,我们将创建一个新文件夹并启动一个新应用程序,然后我们将安装 Express
。在你的终端中执行:
1 | mkdir discover_express |
这些命令将创建一个使用 Express
包安装的新节点应用程序。
你的第一个 Node.js 服务器
我们现在准备好编写第一行代码。打开 app.js
并输入:
1 | const express = require("express"); |
此代码将把 app
变量初始化为一个新的 express
对象。
现在我们可以启动服务器了:
1 | app.listen(5000, () => { |
5000
是端口号。该值可以更改。
网络浏览器如何与互联网通信的基本知识
要访问互联网上的页面,你的浏览器必须向服务器请求所需的页面(请求),然后向你显示该页面(响应)。此请求和响应协议使你能够在浏览器中查看此页面。
例如,当你访问 facebook.com/about 时,你的浏览器会从 facebook 服务器请求关于页面。
然后,Facebook 服务器将查找并匹配你的请求路径,进行处理并发送与此路径关联的响应。
以下是不同 URL 路径的更多示例。
根路由:facebook.com
profile:facebook.com/profile
about:facebook.com/about
login:facebook.com/login
GET 和 POST 请求
你的浏览器可以请求页面,但你的浏览器也可以向服务器发送数据(例如登录表单)。
当浏览器请求信息时,这称为 GET
请求。
当浏览器向服务器发送数据时,这称为 POST
请求
因此,请求 facebook/about 页面是一个 GET
请求。
如果服务器上没有所请求的页面,该怎么办?例如,你请求 facebook.com/blabla
服务器将在向浏览器发送的每个响应中包含一个状态代码。
如果一切按预期工作,状态代码为 200
。如果未找到页面,返回状态代码将为 404
。
作为参考,这里列出了一些 HTTP 状态代码:
- 200:OK(成功)
- 401:未授权
- 403:禁止
- 404:未找到
- 500:内部服务器错误
如果不明白你刚才解释的一句话,这完全可能且正常。在继续之前,了解这个基础非常重要。
这里有一个更完整的教程链接:https://academind.com/tutorials/how-the-web-works/。
第一次客户端/服务器通信
在这篇文章的第一部分,我们用一个 express
应用创建了一个 node.js
服务器。
1 | const express = require("express"); |
然后我们让服务器监听传入的请求:
1 | app.listen(5000, () => { |
现在服务器正在监听。我们可以创建一个路由来匹配潜在的传入请求路径。
1 | app.get("/", (request, response) => { |
该服务器正在等待路由“/”(根路径)上的请求。请注意,该路由正在等待 GET
请求。(app.get
)
一旦收到该请求,服务器将发送“Hello World”作为响应。
让我们测试这一切。首先启动你的服务器。从终端输入:node app.js
1 | node app.js |
然后打开你最喜欢的浏览器并转到 localhost:5000
。应该会显示 Hello World。
可以将 HTTP
状态代码与响应一起发送。这将向客户端表明请求/响应是成功还是失败。
1 | app..get('/', (request, response) => { |
状态 200
表示请求成功!
我们创建的服务器只发送纯文本响应(Hello World)。
但可以返回 HTML 或 JSON。
HTML 响应
1 | app..get('/', (request, response) => { |
你现在可以重新启动服务器。如果你之前的服务器仍在终端中运行。按 CTRL-C
取消服务器执行。你现在可以启动应用程序来查看更改。
1 | node app.js |
如果你在 localhost:5000 刷新浏览器,你现在将看到 Hello World,但这次是大标题 h1 格式!
JSON 响应
服务器还可以将数据发送回浏览器。例如,登录后,服务器可以发送回一些用户个人资料信息。
来回发送数据的标准方法之一是 JSON
。
JSON
(JavaScript
对象表示法)是一种基于 JavaScript
对象语法表示结构化数据的标准文本格式。
它通常用于在 Web
应用程序中传输数据(例如,将一些数据从服务器发送到客户端,以便可以显示在网页上,反之亦然)
JSON
经常与 API
一起使用。
在 express
中发送 json
响应非常简单:
1 | app.get("/", (request, response) => { |
.json()
转换并发送 javascript
对象 {}
作为 JSON
。