使用 Node.js 和 Express 构建后端

2025-06-07

使用 Node.js 和 Express 构建后端

嘿,大家好。我知道我已经失踪几个月了,我答应过我会更积极地发帖。说实话,有时候生活就是会给你带来麻烦,你得先照顾好自己。不过我现在来了,我们开始吧!

爱自己

感谢Titsay

对于这篇(篇幅较长的)博文,我们的重点将转向后端。也就是说,我们将重点放在实现我们堆栈的服务器端功能上。

卡尔文和霍布斯罩衫

我们支持卡尔文和霍布斯

启动我们的 Node.js 后端

我们这次的目标是实现一个后端,该后端将与我之前的帖子中一直在研究的电话簿应用程序配合使用

让我们使用npm init命令为我们的应用程序创建一个新模板。我们将回答提出的问题,结果将是一个package.json包含项目信息的文件。

package.json 图片

不错的包装

在我们继续之前,让我们对我们的scripts对象做一个小的改变:

脚本

我们更喜欢少打字

我们可以node从命令行直接运行该应用程序,如下所示:



node index.js


Enter fullscreen mode Exit fullscreen mode

或者我们可以将其作为 npm 脚本运行,因为我们喜欢这样/懒惰:



npm start


Enter fullscreen mode Exit fullscreen mode

npm start脚本有效,因为我们在 package.json 文件中定义了它!

使用 Express 框架

为了简化使用节点的服务器端开发并提供更简单的界面来与内置的 http 模块协同工作,我们可以使用名为Express的后端框架。

NWA 表达自我

让我们使用以下命令将 express 安装为项目依赖项,然后将其添加到我们的package.json文件中:



npm install express


Enter fullscreen mode Exit fullscreen mode

我们后端服务器的主要目的是JSON向前端提供该格式的原始数据。因此,我们现在可以修改index.js文件,使其返回以下格式的硬编码人员列表,JSON并添加一些快捷功能:



const express = require('express')
const app = express()

let people = [
    {
      name: "Hannah Rickard",
      number: "06-51-99-56-83",
      id: 1
    },
    {
      name: "Hyun Namkoong",
      number: "10987654",
      id: 2
    },
    {
      name: "Courtney Martinez",
      number: "3691215",
      id: 3
    }
  ]

  app.get('/', (request, response) => {
      response.send('<h1>Phonebook</h1>')
  })

  app.get('/api/people', (request, response) => {
      response.json(people)
  })

  const PORT = 3001
  app.listen(PORT, () => {
      console.log(`Server running on port ${PORT}`)
  })


Enter fullscreen mode Exit fullscreen mode

首先,我们在开始时index.js导入 express,这是一个用于创建存储在app变量中的 express 应用程序的函数:



const express = require('express')
const app = express()


Enter fullscreen mode Exit fullscreen mode

现在,我们routes为应用程序定义两个。第一个定义了一个事件处理程序,用于处理GET对应用程序/路由发出的 HTTP 请求:



app.get('/', (request, response) => {
      response.send('<h1>Phonebook</h1>')
  })

  app.get('/api/people', (request, response) => {
      response.json(persons)
  })


Enter fullscreen mode Exit fullscreen mode

事件处理函数接受两个参数。

  • 第一个请求参数包含请求的所有信息HTTP
  • 第二个响应参数用于定义如何响应请求。

对于我们的第一个实例,请求是通过使用send响应对象的方法来应答的。调用该方法会使服务器通过发送包含传递给该方法的HTTP字符串 的响应来响应请求<h1>Phonebook</h1>send



app.get('/', (request, response) => {
  response.send('<h1>Phonebook</h1>')
})


Enter fullscreen mode Exit fullscreen mode

现在对于第二个实例,我们的路由定义了一个事件处理程序,用于处理GET对我们应用程序路径发出的 HTTP 请求/people(如果不熟悉,请在这里刷新您的记忆):



app.get('/api/people', (request, response) => {
  response.json(people)
})


Enter fullscreen mode Exit fullscreen mode

请求GET通过响应对象的方法进行响应json。调用此方法会将传入的 people 数组以 JSON 格式的字符串形式发送出去。是不是很棒?

最后,最后一行将HTTP服务器绑定到分配给 app 变量,以监听发送到的 HTTP 请求PORT 3001



const PORT = 3001
app.listen(PORT)
console.log(`Server running on port ${PORT}`)


Enter fullscreen mode Exit fullscreen mode

瞧!你终于完成了,现在我们已经成功GET使用 express 发出了两个请求。一个是发往我们的/路由,另一个是发往我们的people路由。在接下来的文章中,我们将扩展该应用以支持 RESTful 规范。

出发前……

比利·梅斯

如果你喜欢额外的功课,或者像我一样是个超级成功者,那么不妨试试Nodemon这个小工具。你可能会问 Nodemon 是什么?根据它的文档:

nodemon 将监视启动 nodemon 的目录中的文件,如果任何文件发生变化,nodemon 将自动重新启动您的节点应用程序。

通常,当我们对后端代码进行更改时,我们必须费力地重新启动应用程序才能看到更改Ctrl+C,然后重新启动npm start

与 React 中便捷的工作流程(浏览器在更改后自动重新加载)相比,这感觉有点烦人。但不用担心,nodemon 会帮我们搞定。

现在,后端代码的更改会导致服务器自动重启(但您仍然需要刷新浏览器)。

首先,安装 nodemon 并将其定义为开发依赖项:



npm install --save-dev nodemon


Enter fullscreen mode Exit fullscreen mode

开发人员现在怎么办?我们说的开发依赖项,指的是那些仅在应用程序开发过程中需要的工具。在我们的例子中,这些工具用于自动重启后端。

要召唤 nodemon,我们只需:



node_modules/.bin/nodemon index.js


Enter fullscreen mode Exit fullscreen mode

话说得有点拗口,所以你已经知道接下来会发生什么了,对吧?没错,就是这么写的!

nodemon 图像

爱你的脚本

您现在可以在开发者模式下启动服务器:



npm run dev


Enter fullscreen mode Exit fullscreen mode

好多了。好了,说了这么多。等我们开始构建后端,让它可以抓取单个资源、删除数据,甚至接收新数据的时候再回来查看吧!记得休息一下,补充水分。继续加油!

资源:

Express 和 JSON
Express 发送
Express 库
Node.js
Nodemon 实用程序

文章来源:https://dev.to/crrojas88/building-a-backend-with-node-js-and-express-27b5
PREV
遵循这些 JavaScript 最佳实践来编写更好的代码 7. 使用 for...of 代替 for 循环
NEXT
快速聊天:使用 Botter 构建聊天机器人 🤓 理论🔥实践🏁 结论祝您编码愉快,记住 - 唯一的限制就是您的想象力!🌈