使用 Express.js 的第一步

什么是 Express?

Express 是一个快速、不固执己见、极简的 Node.js Web 框架。它也是迄今为止最流行的 Node.js Web 框架。

我们可以用 Express 做什么?

Web 应用程序:Express 是一个极简且灵活的 Node.js Web 应用程序框架,它为 Web 和移动应用程序提供了一组强大的功能
API:借助大量 HTTP 实用方法和中间件,你可以快速轻松地创建强大的 API
Express 不是像 ReactVue 这样的前端框架。 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
2
3
4
5
$ mkdir discover_express
$ cd discover_express
$ touch app.js
$ npm init
$ npm install express

这些命令将创建一个使用 Express 包安装的新节点应用程序。

你的第一个 Node.js 服务器

我们现在准备好编写第一行代码。打开 app.js 并输入:

1
2
const express = require("express");
const app = express();

此代码将把 app 变量初始化为一个新的 express 对象。

现在我们可以启动服务器了:

1
2
3
app.listen(5000, () => {
console.log("Server running on localhost: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
2
const express = require("express");
const app = express();

然后我们让服务器监听传入的请求:

1
2
3
app.listen(5000, () => {
console.log("Server running on localhost:5000...");
});

现在服务器正在监听。我们可以创建一个路由来匹配潜在的传入请求路径。

1
2
3
app.get("/", (request, response) => {
response.send("Hello World");
});

该服务器正在等待路由“/”(根路径)上的请求。请注意,该路由正在等待 GET 请求。(app.get

一旦收到该请求,服务器将发送“Hello World”作为响应。

让我们测试这一切。首先启动你的服务器。从终端输入:node app.js

1
2
$ node app.js
Server running on localhost:5000...

然后打开你最喜欢的浏览器并转到 localhost:5000。应该会显示 Hello World。

可以将 HTTP 状态代码与响应一起发送。这将向客户端表明请求/响应是成功还是失败。

1
2
3
app..get('/', (request, response) => {
response.status(200).send('Hello World')
})

状态 200 表示请求成功!

我们创建的服务器只发送纯文本响应(Hello World)。

但可以返回 HTML 或 JSON。

HTML 响应

1
2
3
app..get('/', (request, response) => {
response.status(200).send('<h1>Hello World</h1>')
})

你现在可以重新启动服务器。如果你之前的服务器仍在终端中运行。按 CTRL-C 取消服务器执行。你现在可以启动应用程序来查看更改。

1
$ node app.js

如果你在 localhost:5000 刷新浏览器,你现在将看到 Hello World,但这次是大标题 h1 格式!

JSON 响应

服务器还可以将数据发送回浏览器。例如,登录后,服务器可以发送回一些用户个人资料信息。

来回发送数据的标准方法之一是 JSON

JSONJavaScript 对象表示法)是一种基于 JavaScript 对象语法表示结构化数据的标准文本格式。

它通常用于在 Web 应用程序中传输数据(例如,将一些数据从服务器发送到客户端,以便可以显示在网页上,反之亦然)

JSON 经常与 API 一起使用。

express 中发送 json 响应非常简单:

1
2
3
app.get("/", (request, response) => {
response.status(200).json({ user: "William", level: "admin" });
});

.json() 转换并发送 javascript 对象 {} 作为 JSON