Express Router 未按预期路由

Express Router doesn't route as expected

运行 Ubuntu 20.04.2 上的 NodeJS,将 VSApp 与调试器一起使用

我有以下名为 /src/routes/regions.js 的文件:

const router = require('express').Router()
const { int } = require('neo4j-driver')
const { required, optional } = require('../middleware/auth')
const { check } = require('express-validator')
const validate = require('../middleware/validate')
const neo4j = require('../neo4j')

const Joi = require('joi');

const Region = require('../entities/Region')

router.get('/1', (req, res, next) => {

    return req.neo4j.read(`
        MATCH (regions:Region) 
        return regions order by regions.name ASC
    `, params)
        .then(regions => res.send(regions))
        .catch(e => next(e))

})

router.get('/', (req, res, next) => {

    return req.neo4j.read(`
        MATCH (regions:Region) 
        return regions order by regions.name DESC
    `, params)
        .then(regions => res.send(regions))
        .catch(e => next(e))

})

router.get('/:name', (req, res, next) => {

    const params = {
        name: req.params ? req.params.name : null
    }

    return req.neo4j.read(`
        MATCH (region:Region { name: $name }) return region 
    `, params)
    .then(regions => res.send(regions))
    .catch(e => next(e))

})

module.exports = router;

如果我在浏览器中输入 localhost:3000/regions,我会收到按降序排列的所有区域的列表。

但是如果我尝试输入 localhost:3000/regions/1,我什么也得不到。两个调用之间的唯一区别应该是接收数据的顺序。 localhost:3000/regions/Lazio

也一样

它似乎无法识别所提供的模式 URL

另一个非常奇怪的行为是,如果我在文件的任何一行设置断点,调试器都不会停止。看起来是 运行 另一个程序....

有人可以帮忙吗?

您的第一条路线需要包含名称参数。 Express 路线不包括其他地方定义的任何其他路线,因此您需要稍微拼写一下。

router.get('/:name/1', (req, res, next) => {