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

发布于 2022-09-07 07:46:15 字数 1202 浏览 21 评论 0

我如何在访问/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,
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

感情旳空白 2022-09-14 07:46:15

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

幸福不弃 2022-09-14 07:46:15

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

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

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

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

戈亓 2022-09-14 07:46:15

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文