【问题标题】:Express Router doesn't route as expectedExpress 路由器未按预期路由
【发布时间】:2021-10-14 04:36:09
【问题描述】:

在 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 中的模式

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

有人可以帮忙吗?

【问题讨论】:

    标签: javascript node.js express neo4j routes


    【解决方案1】:

    您的第一条路线需要包含名称参数。特快路线不包括在别处定义的任何其他路线,因此您需要稍微说明一下。

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

    【讨论】:

    • 更正,甚至为 id /:name/:id region/1 添加第二个参数 => (name = region, id = 1) region/Lazio => (name = region, id = 拉齐奥)
    猜你喜欢
    • 2012-10-04
    • 1970-01-01
    • 2014-05-02
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 2016-08-19
    相关资源
    最近更新 更多