有比这更好的方法在所有路由前加上/什么吗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