node.js - 任何人都可以向我解释下面的 express.js 代码吗?
问题描述
正如标题所说,我不理解在我正在关注的教程中看到的以下 express.js 代码。本教程用于构建 Node.js、Express 和 PostgreSQL REST API。
这段代码在 index.js 文件的底部附近,我想我明白它是在设置路由,但我不知道它是如何工作的,在网上找不到任何东西。此外,如果我的 index.js 文件具有例如 2 个 GET 端点,我将如何调整以下代码来执行这两个 GET 路由?
app
.route('/books')
// GET endpoint
.get(getBooks)
// POST endpoint
.post(addBook)
解决方案
长话短说,这段代码只是说请求/books
可能有 GET 和 POST 方法,因此将使用不同的函数来解决。
更详细地说,Node JS 允许创建一个调用链,在那个特定的例子中,当/books
端点上的 HTTP 请求发生时,框架将通过这个链,如果请求方法与实现匹配(例如 GET 请求发送),那么相关函数将是叫。
如果你想知道为什么getBooks
并且addBook
没有任何上下文或任何东西,那只是在 Node JS 中传递参数的另一种方式。特别是这些功能中的任何一个看起来像:
export const getBooks = (req, res) => {//some magic here}
但是要小心使用它,因为当你需要传递this
上下文时,你可能会遇到一些奇怪的行为。
实际上,如果添加两个.get
调用,则取决于函数实现,要么只执行第一个(如果函数返回响应),要么一个接一个地被调用。
推荐阅读
- javascript - 仅在调试模式下设置的 Cookie
- r - 使用R识别行中重复字符的位置
- selenium-webdriver - WebDriverSampler 中特定代码的 xpath
- excel - VBA 中的 IF 公式仅返回 True 或 False,而不是标准值
- authentication - 无法在 Ubuntu 20.04 中登录 Rstudio 服务器(开源)
- azure - 备份 Azure DevOps 存储库、工作项等
- json - Laravel - 如何按 desc 顺序对外部 API 进行排序并选择记录集
- javascript - 如何从 React.FC 组件返回 null
- java - 如何在 apache URIBuilder 中的端口后添加斜杠?
- java - 为什么当存在静态引用时这个类被 GCed