首页 > 解决方案 > node.js/express.js 应用程序中相同组件的问题

问题描述

我目前在我的节点 js 应用程序中遇到了一些奇怪的事情。

我的 express.js 应用程序中有两个相同的组件。

1. Stock Vacations
2. Summer Stock Vacations

每个都包含模型、服务、控制器和路由文件。

stockVacations
  -> stockVacationController.js
  -> stockVacationModel.js
  -> stockVacationService.js
  -> stockVacationRoute.js

SummerStockVacations
  -> summerStockVacationController.js
  -> summerStockVacationModel.js
  -> summerStockVacationService.js
  -> summerStockVacationRoute.js

两者在模型中具有相同的集合字段,在 service.js 中具有相同的函数名称。

现在这是我的 API 的顺序:

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

const StockVacation = require('./stockVacations/stockVacationRoute');
const SummerStockVacation = require('./summerStockVacations/summerStockVacationRoute');

router.use('/stock-vacation', StockVacation);
router.use('/summer-stock-vacation', SummerStockVacation);

module.exports = router;

两条路线都有这样的路线:

router.get('/', StockVacationController.getAll); // from stockVacation
router.get('/', SummerStockVacationController.getAll); // from stockVacation

现在,问题是,这两个 api:

http://localhost:3000/api/stock-vacation/?limit=10&page=1&year=2018
http://localhost:3000/api/summer-stock-vacation/?limit=10&page=1&year=2018

显示暑假的数据。

但是如果我改变调用路由文件的顺序:

const SummerStockVacation = require('./summerStockVacations/summerStockVacationRoute');
const StockVacation = require('./stockVacations/stockVacationRoute');

两者都显示股票假期的数据。

对我来说真的很奇怪。我不明白为什么。以前有人遇到过这个问题吗?

标签: node.jsexpressexpress-router

解决方案


推荐阅读