导出我的路线时遇到一个奇怪的问题 . 出于某种原因,此代码适用于我:
app.js
import Koa from 'koa'
import routes from './routes/index'
const app = new Koa()
app.use(routes)
app.listen(3000, () => {
console.log('Server listening at http://localhost:3000')
})
export default app
routes/index.js
import Router from 'koa-router'
const router = new Router()
router.get('/', async ctx => {
await ctx.render('index')
})
export default router.routes()
但是当我只导出routes函数然后尝试在 app.js
中调用它时,我收到一个错误:
app.js
import Koa from 'koa'
import routes from './routes/index'
const app = new Koa()
app.use(routes())
app.listen(3000, () => {
console.log('Server listening at http://localhost:3000')
})
export default app
routes/index.js
import Router from 'koa-router'
const router = new Router()
router.get('/', async ctx => {
await ctx.render('index')
})
export default router.routes
当我第二种方式做的时候为什么它不起作用?
2 回答
你可能想导出一个bound function,所以
this
里面会引用一个路由器对象 .它可以用bind operator很好地完成 . 我相信它已经可用,因为你正在使用
async/await
.你必须添加一个方法:
像这样: