后端开发简介
后端开发的主要范畴是开发数据服务 API,使前端可以调用后端的服务对数据进行增、删、改、查,从而实现对前端请求的响应。
要开发一个后端应用程序,一般不会从零开始做,而会直接使用一些功能完备的框架,快速开发程序功能。本节先介绍几款主流的后端框架,然后再详述 Express
框架的用法。
常用的后端框架
Express
Express
是一款基于 Node.js
平台的快速、开放、完善的 Web
开发框架,是目前最流行的后端框架之一,也是最成熟的框架之一。它为服务器端应用提供了完善的功能,如请求上下文、路由、中间件、模板引擎、静态资源服务等,要扩展其功能也极方便。目前有许多流行的开发框架基于 Express
构建。
Koa
Koa
是一款极简的后端框架。通过利用 async()
函数,它放弃了传统回调函数的做法,避免产生回调灾难。Koa
没有捆版中间件,而提供了优雅的办法来协助编写服务器端应用程序,它不仅提供了请求上下文、中间件等基础功能,还可以通过 async/await
写出更简洁的代码,开发者可根据需求开发自定义框架。
Express框架的用法
目前,Express
是主流的框架。本节将以 Express
框架为例,介绍基于 TypeScript 语言的后端开发,以及如何搭建一个基础的后端服务。
假设当前项目目录为 D:\TSProject\server-side
,首先,执行以下命令安装 Express
及其对应的声明文件库。
$ npm install express
$ npm install @types/express -D
然后,使用 tsc --init
命令创建 ts.config
文件,在文件中添加 rootDir
编译选项和 outDir
编译选项,将待编译的 TypeScript 源文件根目录设置为 ./src
,并将编译后的 JavaScript 文件的输出目录设置为 ./dist
。
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true,
"rootDir": "./src",
"outDir": "./dist"
}
}
接下来,在项目根目录下创建 src
文件夹,并在文件夹中创建 index.ts
文件,src/index.ts
文件的内容如下。
import express from 'express';
const app = express();
const port = 8000;
app.get('/hello', (req, res) => {
res.send("hello world!");
});
app.listen(port, () => {
return console.log(`Express is listening at http://localhost:${port}`);
});
以上代码中从 express
库中导入了 express
对象,通过调用 express()
函数初始化 express
服务器对象,并设置端口为 8000
,然后通过 app.get
创建一个 API
,其相对路由为 /hello
,访问方法为 get
。一旦服务器运行,就可以通过以 get
形式访问 “http://{主机地址}:8000/hello”
访问该路由,服务器端将返回字符串结果 “hello world!”,最后通过调用 app.listen()
方法监听 8000
端口,开始提供服务。
下面先执行 tsc
命令,编译 src
目录下的全部文件,然后通过 node
命令启动输出后的 JavaScript 文件。
$ tsc
$ node dist/index.js
输出结果如下,此时服务已经开启,可以访问了。
> Express is listening at http://localhost:8000
此时,打开浏览器,访问之前编写的 API,地址为 http://localhost:8000/hello ,将会返回 “hello world!” 关键字,API 访问结果如图22-2所示。

到这里,一个基本的后端服务已经搭建成功,但是启动时需要分别执行两条命令并不方便。此时创建 package.json
文件(在 D:\TSProject\server-side
目录下执行 npm init
命令),将 main
属性设置为 dist/index.js
,并在 scripts
属性下新增 start
属性,将它的值设置为 tsc && node dist/index.js
,代码如下。
{
"name": "server-side",
"version": "1.0.0",
"description": "",
"main": "dist/index.js",
"dependencies": {
"express": "^4.18.1"
},
"devDependencies": {},
"scripts": {
"start": "tsc && node dist/index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
在项目根目录下,执行 npm start
命令,直接编译并启动服务,输出结果如下。
D:\TSProject\server-side> npm start
> server-side@1.0.0 start D:\TSProject\server-side
> tsc && node dist/index.js
> Express is listening at http://localhost:8000
配置完成后,项目结构如下。
D:\TSProject\server-side
│ package.json
│ tsconfig.json
│
├─node_modules
│ ...
│
├─dist
│ index.js
│
└─src
index.ts