今天在编写登录模块时,碰到一个隐蔽的坑,故记录一番
在使用Node.js的mysql模块的query方法时,查询语句使用了
`select password from login where name=${name}`
注:name为传入的一个字符串
而非传统的
'select password from login where name=' + name
当然,这个不是这个坑触发的关键,关键在于,我以为JavaScript的字符串会自行在外部包裹一个双引号或单引号,然而事实上并非如此
当我在${name}外包裹一层""时,
`select password from login where name="${name}"`
进行查询后,结果就正常了。
之后又观察了一下日志中的错误信息,才发现我以为日志提示的是在该列中查找不到name变量,事实上其提示的是查找不到列名为name变量的列。。