节点api为所有路由添加/api前缀



有比这更好的方法在所有路由前加上/什么吗
app.use('/api/users', require('./routes/users'));
app.use('/api/books', require('./routes/books'));
app.use('/api/authors', require('./routes/authors'));
当我的server.js中的路由与app.get()/post()/...一起使用时,这也会起作用

如果您的所有路由都以/api为前缀,我想您可以使用函数。

function api(route) {
return `/api/${route}`;
}
app.use(api('users'), require('./routes/users'));
app.use(api('books'), require('./routes/books'));
app.use(api('authors'), require('./routes/authors'));

也就是说,/api前缀可能是不必要的。你可以省略它:

app.use('/users', require('./routes/users'));
app.use('/books', require('./routes/books'));
app.use('/authors', require('./routes/authors'));

您需要将{ mergeParams: true }添加到子路由器中。

// app.js
import routes from './routes'
const API_PREFIX = '/api'
app.use(API_PREFIX, routes)
// routes.js
import { Router } from 'express'
import users from './users'
import books from './books'
import authors from './authors'
const router = Router({ mergeParams: true })
router.use(users)
router.use(books)
router.use(authors)
export default router

相关内容

  • 没有找到相关文章

最新更新