首页 > 解决方案 > 任何人都可以向我解释下面的 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)

标签: node.jsapirestexpress

解决方案


长话短说,这段代码只是说请求/books可能有 GET 和 POST 方法,因此将使用不同的函数来解决。

更详细地说,Node JS 允许创建一个调用链,在那个特定的例子中,当/books端点上的 HTTP 请求发生时,框架将通过这个链,如果请求方法与实现匹配(例如 GET 请求发送),那么相关函数将是叫。

如果你想知道为什么getBooks并且addBook没有任何上下文或任何东西,那只是在 Node JS 中传递参数的另一种方式。特别是这些功能中的任何一个看起来像:

export const getBooks = (req, res) => {//some magic here}

但是要小心使用它,因为当你需要传递this上下文时,你可能会遇到一些奇怪的行为。

实际上,如果添加两个.get调用,则取决于函数实现,要么只执行第一个(如果函数返回响应),要么一个接一个地被调用。


推荐阅读