如何为express服务器(nodejs)编写动态路由

jjjwad0x  于 2022-12-03  发布在  Node.js
关注(0)|答案(1)|浏览(157)

我写了一些很烂的路线
`

const express = require('express')
const bodyParser = require('body-parser')
const app = express()
const db = require('./user_crud_queries')
const port = 3000
app.use(bodyParser.json())
app.use(
    bodyParser.urlencoded({
        extended: true,
    })
)
app.get('/', (request, response) => {
    response.json({
        info: 'Node.js, Express, and Postgres API'
    })
})
app.get('/users', db.getUsers)
app.get('/users/:id', db.getUserById)
app.post('/users', db.createUser)
app.put('/users/:id', db.updateUser)
app.delete('/users/:id', db.deleteUser)
app.listen(port, () => {
    console.log(`App running on port ${port}.`)
})

`
如果我有100个表,我必须包括100个文件吗?它可以根据调用动态导入吗?
我确实创建了通用的crud,但我不想给予客户,因为他们希望它是详细的。所以100个表意味着100个单独的文件为每个表。如果服务器包括所有100个表,内存是足够的吗?

rdrgkggo

rdrgkggo1#

因此,您可以改为创建一个名为users.routes.js/ts的文件,并将其全部包含在内,如下所示:

import { Router } from "express";

router
.route("/users")
.get(db.getUsers)
.post(db.createUser)

router
.route("/users/:id")
.get('/users/:id', db.getUserById)
.delete('/users/:id', db.deleteUser)



export default router;

然后在app.js/ts中,您可以这样使用它:

import userRouter from "./routes/user.routes";

app.use("/api", userRouter);

因此,现在您可以使用以下端点:
/api/用户或/api.用户/:id
但是,如果有100个表,您必须使用100个不同的文件来执行所有的CRUD操作,只有这样才能使代码更容易阅读。此外,您可以为同一个作业使用不同的微服务,从而减少单个服务器要处理的表。

相关问题