Web API 路由对 2 个不同的调用给出相同的响应

Web API routing give same response on 2 differend calls

我使用 Express 和 Node.JS 制作了简单的路由器 (Github 回购代码:https://github.com/michalwitek1232/back

我有 2 条单独的路线,一条用于 'recipes',另一条用于 'przepisy'。

我的路由器脚本:

const Recipe = require("../models/recipe.model.js");
const Przepis = require("../models/przepis.model.js");

module.exports = app => {
    const Recipe = require("../controllers/recipe.controller.js");
    const Przepis = require("../controllers/recipe.controller.js");
  
    // Create a new Recipe
    app.post("/recipe", Recipe.create);
  
    // Retrieve all Recipe
    app.get("/recipes", Recipe.findAll);
  
    // Delete a Recipe with recipeId
    app.delete("/recipe/:recipeId", Recipe.delete);
  
    // Create a new Recipe
    app.delete("/recipe", Recipe.deleteAll);

    // * przepisy ale po polsku bo angielski leży ;P

    //dodawanie przepisu
    app.post("/przepis", Przepis.create);

    //pobieranie przepisów
    app.get("/przepisy", Przepis.findAll);

    //pobieranie po id
    /*
    TODO: dodać
    app.get("/przepis/przepisId", Przepis.findOne);
    */

    //edycja po id
    /*
    TODO: dodać
    app.put("/przepis/:przepisId", Przepis.update);*/

    //Usuwanie przepisu po Id
    app.delete("/przepis/:przepisId", Przepis.delete);

    //usuwanie wszystkich
    app.delete("/przepis", Przepis.deleteAll);

  };

但是当我在 Postman 中调用 localhost:3000/przepisy 时,它返回与 localhost:3000/recipes 相同的响应,这很奇怪,因为有 2 个单独的查询:

食谱:

SELECT * FROM recipies

奖品:

SELECT * FROM przepisy

您为两个表定义了同一个控制器。

const Recipe = require("../controllers/recipe.controller.js");
const Przepis = require("../controllers/recipe.controller.js");

当您调用 findAll 时,它会调用“../controllers/recipe.controller.js”控制器中的第一个定义函数,并且它正在使用 Recipe 模型。这就是为什么你得到了相同的回应。

As a solution create a separate controller for the models.