javascript - Web API 路由对 2 个不同的调用给出相同的响应
问题描述
我使用 Express 和 Node.JS 制作了简单的路由器(Github Repo 代码:https ://github.com/michalwitek1232/back )
我有两条不同的路线,一条用于“食谱”,另一条用于“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 模型。这就是为什么你得到了同样的回应。
作为解决方案,为模型创建单独的控制器。
推荐阅读
- appium - 如何在 Appium 中按(或发送键)Enter 或 Backspace
- python - Pandas read_csv 在推断 dype 时得到错误的数字
- c++ - 我应该如何检查对象是否位于 sfml 中的某个位置?
- git - 一个关于 git HEAD 的查询
- python - QListWidget Item 突出显示项目的不同颜色
- mongodb - 为缺失的分组数据生成默认值
- c# - 如何将 ECDSA 公钥与其私钥配对
- android - 重新验证用户导致 https.onCall() 火库云功能无法接收经过身份验证的用户信息
- javascript - 如何根据元素更改光标
- android - 无法在 Android Pie 上进行 HTTP 请求