前言
在 web 开发中,后端服务器是不可或缺的一部分。Node.js 提供了一个基于事件驱动和非阻塞 IO 的环境,让我们可以使用 JavaScript 在服务器端进行高效的开发。
Express.js 是 Node.js 的一个流行的 Web 框架,它提供了一些简单、灵活的路由和中间件,使得搭建服务器变得更加方便快捷。
在本文中,我们将会介绍如何使用 Express.js 搭建一个 Node.js 服务器,包括路由、中间件、错误处理等。
安装
首先,我们需要在本地安装 Node.js 和 Express.js。
可以使用 npm 包管理器进行安装:
npm install express
Hello World
现在,我们来编写第一个 Express 应用程序。创建一个名为 app.js
的文件,在其中输入以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------ ----- --- - --------- ------------ ----- ---- -- - --------------- -------- -- ---------------- -- -- - ------------------- ------- -- ---- ------ --
使用 require
导入 express
模块,创建一个 Express 应用程序实例,并将其赋值给 app
常量。
我们使用 app.get()
方法设置一个路由,用于处理 GET 请求。当用户访问网站的根目录时,我们向客户端发送一个 "Hello World!" 的响应。
最后,我们使用 app.listen()
方法启动服务器,将其绑定在本地主机上的 3000 端口上。当应用程序成功启动时,将在终端输出 "Server started on port 3000"。
运行 node app.js
命令启动服务器。在浏览器中输入 http://localhost:3000
,可以看到 "Hello World!" 的响应输出。
路由
路由是用于处理客户端请求的方式,它是用 URL 和 HTTP 方法组合而成的。在 Express 中,路由可以通过 app.get()
、app.post()
、app.put()
等方法定义。如:
-- -------------------- ---- ------- ------------ ----- ---- -- - -- -- ---- --- -- -- ------------- ----- ---- -- - -- -- ---- ---- -- -- ------------ ----- ---- -- - -- -- ---- --- -- --
路由可以包含多个处理程序函数,这些函数按顺序执行。在这些函数中,我们可以访问客户端请求和服务器响应,以及 next
函数来传递控制权。如:
app.get('/', (req, res, next) => { console.log('First handler') next() }, (req, res) => { console.log('Second handler') res.send('Hello World!') })
在上面的例子中,第一个处理程序函数输出 "First handler",并使用 next
函数将控制权传递给下一个处理程序函数。第二个处理程序函数输出 "Second handler",并向客户端发送 "Hello World!" 的响应。
中间件
中间件是一种在请求和响应之间执行的函数。它可以用于修改请求或响应对象,或者将控制权传递给下一个中间件或路由处理程序函数。在 Express 中,中间件可以通过 app.use()
方法添加。
如下是一个简单的中间件的例子,它会在所有请求的 URL 中添加一个时间戳:
app.use((req, res, next) => { req.timestamp = new Date() next() }) app.get('/', (req, res) => { res.send(`Timestamp: ${req.timestamp}`) })
在上面的例子中,中间件函数添加了一个名为 timestamp
的属性到 req
对象中,然后调用 next
函数将控制权传递给下一个路由处理程序函数。当用户访问网站的根目录时,请求对象的 timestamp
属性会作为响应的一部分返回。
错误处理
在开发 Web 应用程序时,错误处理是非常重要的一部分。Express 提供了一些中间件来处理常见的错误情况。
例如,当访问的路由不存在时,Express 会自动生成一个 404 错误。我们可以添加一个 404 错误处理中间件来捕获这个错误:
app.use((req, res, next) => { res.status(404).send('Sorry, page not found') })
在上面的例子中,中间件函数处理 404 错误,向客户端发送一个包含错误信息的响应。
此外,我们还可以添加一个错误处理中间件,用于处理其他类型的错误:
app.use((err, req, res, next) => { console.error(err.stack) res.status(500).send('Something broke!') })
在上面的例子中,中间件函数处理所有类型的错误,打印错误堆栈到终端,并向客户端发送一个包含错误信息的 500 响应。
总结
在本文中,我们已经介绍了如何使用 Express.js 搭建一个 Node.js 服务器,包括路由、中间件、错误处理等。Express 提供了很多简单、灵活的路由和中间件函数,使得开发起来更加高效便捷。
以下是本文介绍过的代码示例:
-- -------------------- ---- ------- ----- ------- - ------------------ ----- --- - --------- ------------ ----- ---- -- - --------------- -------- -- ------------- ---- ----- -- - ------------- - --- ------ ------ -- --------------------- ----- ---- -- - -------------------- ------------------ -- ------------- ---- ----- -- - ---------------------------- ---- --- ------- -- ------------- ---- ---- ----- -- - ------------------------ ------------------------------- -------- -- ---------------- -- -- - ------------------- ------- -- ---- ------ --
我希望本文对你有所帮助,能够快速入门使用 Express.js 搭建 Node.js 服务器。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64904d5e48841e9894e788c2