Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Mysql和Node.js express中添加可选参数_Mysql_Node.js_Express - Fatal编程技术网

如何在Mysql和Node.js express中添加可选参数

如何在Mysql和Node.js express中添加可选参数,mysql,node.js,express,Mysql,Node.js,Express,我试图调用一个与mysql数据库链接的node.js express api,并使用req.query输入参数,但我的计划是让它们成为可选的。 我的查询得到了兴趣点某个半径内的所有餐馆。这是工作良好,但我想能够延长这一点。 我希望能够在兴趣点的半径范围内找到所有具有特定名称的餐厅。 例如,我想在主广场500米半径范围内购买所有麦当劳。 我还想在兴趣点的半径范围内找到所有具有特定名称和类型的餐厅。 例如,我想在主广场半径500米的地方买一家叫杰里的牛排馆 我的问题是这样的 SELECT resta

我试图调用一个与mysql数据库链接的node.js express api,并使用
req.query
输入参数,但我的计划是让它们成为可选的。 我的查询得到了兴趣点某个半径内的所有餐馆。这是工作良好,但我想能够延长这一点。 我希望能够在兴趣点的半径范围内找到所有具有特定名称的餐厅。 例如,我想
在主广场500米半径范围内购买所有麦当劳。

我还想在兴趣点的半径范围内找到所有具有特定名称和类型的餐厅。 例如,我想
在主广场半径500米的地方买一家叫杰里的牛排馆

我的问题是这样的

SELECT restaurants.*, < Calculating Radius> AS distance FROM restaurants 
  CROSS JOIN poi WHERE   poi.name like '%"+req.query.poi+"%' AND <Calculating Radius> 
< "+req.query.radius+" AND restaurants.type like '%"+req.query.type+"%'";
选择餐厅。*,作为与餐厅的距离
交叉连接poi,其中poi.name类似“%”+req.query.poi+“%”和
<“+req.query.radius+”和类似“%”“+req.query.type+“%”的restaurants.type;
问题是,如果不添加
type
参数,则不会得到任何结果

我假设我的问题在查询的这一部分
和restaurants.type中,比如“%”+req.query.type+“%”
我如何才能使我能够结合这些标准,但如果我遗漏了一个或两个,它应该会起作用。
我的问题遗漏了什么。

提前感谢。

为什么不在启动查询之前检查“req.query.type”值,并进行适当的更改,例如如果类型未定义,请不要包含“req.query.type”,否则请将其包含在查询序列中,但如果
'%“+req.query.type+“%”
是空的,那么它不应该是
%%
,因此是一个通配符吗?我认为您的req.query.type是未定义的。这就是为什么它的结果是这样的。只需打印req.query.type并在此处注释值是什么好的,我这样做了,如果我不键入,那么我将得到未定义的值,但如果我添加它,它将打印值,