Маршрутизатор Koa показывает 404, несмотря на то, что достигнута точка останова и ответ получен успешно - PullRequest
0 голосов
/ 25 ноября 2018

Я хочу отправить запрос на получение (использовать axios) маршрутизатору koa, но из вида отладки vscode

router ctx.status всегда показывает 404, а ctx.message show "Not Found"

Но мой запрос завершился идеально.

Я хочу запросить базу данных mongodb type, поэтому я регистрирую два маршрутизатора tag, post

, если type===post,мы вызываем next() и позволяем tag router обработать его

enter image description here

Вот мои коды

export default function (this: server) {

    queryPost(this.router, this)
    queryTag(this.router, this)
}

/**
* type=post&path=postpath
* @param router 
*/
async function queryPost(router: Router, server: server) {
    router.get('/api/blog', async (ctx, next) => {
        let query = ctx.query
        let type = query.type
        if (type !== 'post') {
            return next()
        }
        let path = query.path
        let config = server.config
        ctx.body = await server.mgController.query(config.postsCollectionName, {
            path: path
        })
    })
}

/**
* type=tag&name=tagsname
* @param router 
*/
async function queryTag(router: Router, server: server) {
    let config = server.config
    router.get('/api/blog', async (ctx, next) => {
        let query = ctx.query
        let type = query.type
        if (type !== 'tag') {
            return next()
        }

        let name = query.name
        ctx.body = await server.mgController.query(config.postsCollectionName, {
            'matter.tags':[name]
        }, {
            sort: {
                originDate: 1
            },
            projection: {
                title: 1,
                path: 1,
                excerpt: 1,
                'matter.tags':1,
                originDate: 1,
                updatedDate: 1
            } as TagQueryExcerpt
        } as FindOneOptions)
    })
}
...