javascript - 使用 Express NodeJS Rest api 样板创建新路线

标签 javascript node.js rest express

我是expressjs的新手,我打算使用this我的其余 api 项目的样板。 我想知道如何扩展现有路由来更新或创建 REST API。 开箱即用,如果我运行它适用于 http://localhost:8080/api/facets/ 的代码 我想延长路线,如 http://localhost:8080/api/facets/createhttp://localhost:8080/api/facets/list

我对文件感到困惑 express-es6-rest-api/src/api/index.js 和express-es6-rest-api/src/api/facets.js

请解释一下下面的代码:

export default ({ config, db }) => {
    let api = Router();
    // mount the facets resource
    api.use('/facets', facets({ config}));
    // perhaps expose some API metadata at the root
    api.get('/', (req, res) => {
        console.log(api)
        res.json({ version });
    });


 return api;
}

最佳答案

我建议您在 src/api 中创建另一个 Facets 文件,并尝试创建自己的快速路由器,而不使用任何像“resource-router-middleware”这样的库。

请阅读https://expressjs.com/en/guide/routing.html .

在这里,您可以看到如何轻松地创建另一个快速路由器,您可以将其导入到 index.js 中并使用它来代替基于“resource-router-middleware”的现有路由器。这样您就可以完全控制路线,包括您想要的任何名称。

我将给出一个简单的例子来说明我在存储库中最简单的路线的含义:

import { Router } from 'express'

let router = Router()

router.get('/get', (req, res) => {
    res.json(facets)
})

export default router

如果您在“index.js”中导入此路由器并在“api.use('/facets, newFacetsRou​​ter)”中使用它,其中 newFacetsRou​​ter 是上面导入的路由器,您将看到现在可以调用 GET "/facets/get" 而不是之前的 GET "/facets"。您可以使用以下模式继续我为所有方法发布的代码:

router.["HTTP METHOD"]('/["ROUTE NAME"]', callback)

其中“HTTP METHOD”可以是:“get、post、put、delete”。 “路线名称”是您想要的任何名称。而回调就是http调用成功后执行的函数。

关于您发布的代码,您希望对其进行解释:它只是一个快速路由器,我们在其中导入另一个快速路由器,请再次阅读有关路由的快速文档。

关于javascript - 使用 Express NodeJS Rest api 样板创建新路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60005057/

相关文章:

javascript - ng-repeat radio 过滤器不工作

javascript - 链接 JS 和 jQuery 文件

javascript - 是否可以使用XMLDOM获取所有处理指令元素?

java - 有条件地忽略特定属性 DTO

rest - 使用 REST 存储 200MB+ 文件时出现 MarkLogic "XDMP-FRAGTOOLARGE"错误

java - 使用 REST 发送文件?

javascript - 从用户 Angular 向下翻页重定向

javascript - 如何在React和vite中使用环境变量?

node.js - 如何使用 supertest 和 mocha 测试快速渲染

javascript - 如何使用node js检查文件中有多少行代码