如何解决Web API路由在2个差分调用上给出相同的响应
我使用Express和Node.JS制作了简单的路由器 (Github回购代码为https://github.com/michalwitek1232/back)
我有2条单独的路线,一条用于“食谱”,另一条用于“ 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
相同,这很奇怪,因为有两个独立的查询:
食谱:
SELECT * FROM recipies
Przepisy:
SELECT * FROM przepisy
解决方法
您为两个表定义了相同的控制器。
const Recipe = require("../controllers/recipe.controller.js"); const Przepis = require("../controllers/recipe.controller.js");
当您调用findAll时,它从'../controllers/recipe.controller.js'控制器调用了第一个定义的函数,并且它与Recipe模型一起使用。这就是为什么您得到相同的答复。
作为解决方案,为模型创建一个单独的控制器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。