Express.js 主路由器工作,但他的其他路由器不工作

Express.js main router working, but others routers on him not

我在路由器上遇到了问题。我的主路由/weather 可以用,但是他上面的其他路由器不行。

app.js

const express = require('express');
const weatherRoute = require('./back/routes/weatherRouter.js');

const app = express();

app.use(bodyParser.json());
app.disable('etag');
app.use('/weather', weatherRoute);

weatherRouter.js

const router = express.Router();

router.get('/', async (req, res) => {
    try {
        const wholeData = await WeatherInfo.find();
        res.json(wholeData);
    } catch (err) {
        res.json({ message: err })
    }
});

router.get('/now', (req, res) => {
  res.send("ITS NOT WORKING");
});

module.exports = router;

问题是 localhost:5000/weather 工作完美,但是当我想在该路由上使用其他路由器时,例如localhost:5000/weather/now 没用
知道我做错了什么吗?

更新:

当这些路由器之间没有其他路由器时,它可以工作。

例如

 router.get('/', async (req, res) => {
//working 
    }
    router.post('/:add', async (req, res) => {
//working
    }
    router.get('/now', async (req, res) => {
//doesnt work
    }

如果我将 /now 移动到 /add router 之上,它会完美运行。有人可以解释为什么会这样吗?

我找到了解决方案。
路由器的位置很重要。 我的最后一个路由器坏了,因为另一个路由器已经抓到他了。

app.get('/:add', function (req, res) {
  // this will match all /a, /b .. including /new
  res.end('done!');
});

app.get('/now', function (req, res) {
  // this is never called
  res.end('done!!');
});

在路径部分定义实际路径 likerouter.post('/weather/now', (re, res) => { //亨德尔重新 }