koa-router 路径参数,遇到这种情况怎么办?

我如何在访问/manhour时不用写路径参数?
另外我想问问,不直接操作数据库,只是接口转发,koa2可以有model的概念吗?
现在我是通过链式router.get('/manhour', controllers.manhour.get,把数据塞进页面,可是页面、不可能总是只有一个接口,写多了也很混乱,所以想问问有没有model概念

routes/api.js

router.get('/api/manhour/:userid/:year/:weeks', controllers.manhour.get)

routes/manhour.js

router.get('/manhour', controllers.manhour.get, async (ctx, next) => {
    await ctx.render('manhour', {
        data: ctx.state.data,
    })
})

controllers/manhour.js

async function get(ctx, next) {
    const { userid, year, weeks } = ctx.params

    const params = {
        userid,
        year,
        weeks,
    }

    await axios.get(getWorkingTimeList, { params })
        .then(res => {
            if (res.status === 200) {
                ctx.state.code = 0
                ctx.state.data = res.data
            } else {
                ctx.state.code = -1
                ctx.state.data = {}
            }
        })

    await next()
}


module.exports = {
    get,
}
阅读 3.4k
3 个回答

不用写路径参数啥意思?
model用来操作数据库的,如果不操作数据库,没有model。如果你想做接口转发,一般情况下nginx可以帮你。如果需要自己弄,可以写在controller里面。

我如何在访问/manhour时不用写路径参数?

你用了中间件controllers.manhour.get,然后在里面定义了接收参数,然后你现在不想传参数,那里面怎么执行呢。

另外我想问问,不直接操作数据库,只是接口转发,koa2可以有model的概念吗?
现在我是通过链式router.get('/manhour', controllers.manhour.get,把数据塞进页面,可是页面、不可能总是只有一个接口,写多了也很混乱,所以想问问有没有model概念

koa并没有model的概念,也没有controller的概念,但是既然你的js代码里面已经有了controller的,那么model的概念不也是一样的么。

没太明白不写路径参数是啥意思,可以再详细描述一下吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题