ES6 String templating litterals:处理数组

时间:2017-08-16 14:58:14

标签: javascript ecmascript-6

我正在尝试使用ES6 String模板来查询我的数据库

我的SQL就像:

SELECT * FROM table WHERE id IN ();

in必须包含数组的每个项目,所以,我试过这样的事情:

return connector.query`SELECT * FROM table WHERE AnalogHistory.TagName IN (${sensor})`.then(result => {return result.recordset});

这不起作用。但如果我尝试这样的事情:

return connector.query`SELECT * FROM table WHERE AnalogHistory.TagName IN (${sensor[0]},${sensor[1]}, ${sensor[2]}, ...)`.then(result => {return result.recordset});

这次,它有效。所以你们知道第一种方式(清洁工)有什么不同之处吗?

1 个答案:

答案 0 :(得分:0)

我们不能完全确定query如何处理标记参数,但不同之处在于,在第一种情况下,您提供了query数组作为单个参数;在第二种情况下,您已为query提供了一系列带有逗号的个别参数。

显然它对第二个很满意,而不是第一个。是否有第三种选择不那么费力但功能也完全取决于query的设计方式。

重新评论说它是mssql npm包:我在its documentation中没有看到任何建议它支持将数组作为参数传递到query标记函数中。这真的很不幸。