Javascript 这是一种糟糕的做法吗?(Node.js+;Express)

Javascript 这是一种糟糕的做法吗?(Node.js+;Express),javascript,node.js,express,Javascript,Node.js,Express,基本上,我在node.js后端有一个SQL查询路由,但我不想为每种类型的查询创建单独的路由——让所有查询都转到同一个路由并使用条件语句来确定要执行的查询类型可以吗(好/坏做法?) 例如,在伪代码javascript中: app.post('/query/:type', (req,res)=>{ if(req.params.querytype === "all") execute sql query('SELECT * FROM TABLE'); else if(

基本上,我在node.js后端有一个SQL查询路由,但我不想为每种类型的查询创建单独的路由——让所有查询都转到同一个路由并使用条件语句来确定要执行的查询类型可以吗(好/坏做法?)

例如,在伪代码javascript中:

app.post('/query/:type', (req,res)=>{
   if(req.params.querytype === "all")
        execute sql query('SELECT * FROM TABLE');
   else if(req.body.querytype === "surname")
        execute sql query(`SELECT * FROM TABLE WHERE TABLE.SURNAME = '${req.body.surname}' `
   else if(req.body.querytype === "STATUS")
        execute sql query(`SELECT * FROM TABLE WHERE TABLE.STATUS = '${req.body.status'`)

   res.send("success");
})

此实现与为每个查询类型使用单独的路由相比如何?

是的,基于URL或表单中的参数使用一个路由分支是完全可以的,只要您从中选择的操作系列在逻辑上符合该路由和谓词。但是,如果您试图比较url中
:type
的值,那将是
req.params.type
,而不是
req.body.querytype
。它们是查询相同的
表(并提供不同的筛选选项),还是不同的实体?它们看起来非常像不同的独立路由。“我不想为每个路由创建单独的路由”-为什么?是的,根据URL或表单中的参数创建一个路由分支是完全可以的,只要您从中选择的操作系列在逻辑上符合该路由和动词。但是,如果您试图比较url中
:type
的值,那将是
req.params.type
,而不是
req.body.querytype
。它们是查询相同的
表(并提供不同的筛选选项),还是不同的实体?它们看起来非常像不同的独立路由。“我不想为每个人制定单独的路线”-为什么?