我是expressjs的新手,我打算使用this我的其余 api 项目的样板。 我想知道如何扩展现有路由来更新或创建 REST API。 开箱即用,如果我运行它适用于 http://localhost:8080/api/facets/ 的代码 我想延长路线,如 http://localhost:8080/api/facets/create或http://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, newFacetsRouter)”中使用它,其中 newFacetsRouter 是上面导入的路由器,您将看到现在可以调用 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/