Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node Express API路由,父资源Id在req.params中不可用_Javascript_Node.js_Express_Routing_Routeparams - Fatal编程技术网

Javascript Node Express API路由,父资源Id在req.params中不可用

Javascript Node Express API路由,父资源Id在req.params中不可用,javascript,node.js,express,routing,routeparams,Javascript,Node.js,Express,Routing,Routeparams,我的问题是,在子资源的路由中,我没有在req.params中获取父资源的id。跟我来。。。我会给你看 以下是我的代码中的相关部分: - routes/ - index.js - countries.js - cities.js - controllers/ - cities.js index.js let router = require('express').Router(); router.use('/countries', require('./co

我的问题是,在子资源的路由中,我没有在req.params中获取父资源的id。跟我来。。。我会给你看

以下是我的代码中的相关部分:

 - routes/
    - index.js
    - countries.js
    - cities.js
 - controllers/
    - cities.js
index.js

let router = require('express').Router();

router.use('/countries', require('./countries'));
router.use('/countries/:countryId/cities', require('./cities'));

module.exports = router;
routes/countries.js

const router = require('express').Router();

const countries = require('../controllers/countries');

router.post('/', countries.create);

router.get('/', countries.readAll);

router.get('/:_id', countries.readById);

router.patch('/:_id', countries.updateById);

router.delete('/:_id', countries.deleteById);

module.exports = router;
routes/cities.js

const router = require('express').Router();

const cities = require('../controllers/cities');

router.get('/', cities.readAll);

router.get('/:_id', cities.readById);

module.exports = router;
module.exports.readAll = async function (req, res, next)
{
    return res.json(req.params);
};

module.exports.readById = async function (req, res, next)
{
    return res.json(req.params);
};
controllers/cities.js

const router = require('express').Router();

const cities = require('../controllers/cities');

router.get('/', cities.readAll);

router.get('/:_id', cities.readById);

module.exports = router;
module.exports.readAll = async function (req, res, next)
{
    return res.json(req.params);
};

module.exports.readById = async function (req, res, next)
{
    return res.json(req.params);
};
现在,问题如下:

如果我调用以下API:

获取国家/地区/城市

结果是{} 当它真的应该把我送回{“countryId”:“1”}

另外,当我调用以下API时:

获取国家/地区/城市/2

结果是{u id:“2”} 当它真的应该把{“countryId”:“1”,“_id”:“2”}

因此,问题是出于某种原因,在子资源的控制器中无法访问父资源的id(countryId)


请告知

在这个问题中找到了答案