sql-server - 使用 Node.js 提供的 mssql 包在 Node.js express 应用程序中执行存储过程
问题描述
如何在我在 Node.js express 框架上创建的应用程序中执行在 Microsoft SQL Server 数据库中创建的存储过程,该框架使用 Node.js 提供的 MSSQL 包连接到数据库并执行与数据库相关的任务?
请清楚如何传递参数以及存储过程名称如何通过mssql包在应用程序中进行引用。
我对这项技术很陌生,所以任何帮助都将不胜感激。谢谢你。
解决方案
有很多方法可以做到这一点,许多软件包可以提供帮助。我会推荐Knex.js包。设置好并建立连接后,您可以使用knex.raw函数执行任意 SQL 并将其作为 knex 对象返回。我不确定 MSSQL 的特定 SQL 语法,但它应该与 Postgres 非常相似,您可以在其中执行以下操作:
knex.raw('select * from my_func(?, ?)', [valOne, valTwo]);
在上面的示例中,我正在对名为my_func
. 我是他们为每个参数传递一个问号,然后在字符串后面的数组中匹配它们。这将导致 SQL 被执行。
select * from my_funct(valOne, valTwo);
这包括转义值以帮助防御诸如 SQL 注入之类的事情。
您的执行语法在 MSSQL 中可能略有不同,但您仍然可以使用knex.raw
问号 + 数组语法将值注入到这样的准备好的语句中。
推荐阅读
- python - 在 matplotlib 中绘制组合 3 个变量和重新定位图例的难度
- apache-spark - 如何从数据框中选择聚合列
- python - 使用 Tornado 上传 Excel 文件
- c# - 如何在设计时在控件属性的下拉列表中列出表单上 typeX 组件的所有实例
- chronicle-queue - Chronicle Queue 中的第一个数据文件总是被触及
- vue.js - Nuxt keep-alive 不适用于路由器外部。NuxtJS
- java - 填充 ListView 列表
- php - update_option 工作,但字段显示为空
- matlab - 使用 SLURM 为 Matlab 设置显示分辨率
- javascript - 如何覆盖repeat元素的remove方法并在ngx中执行删除和添加一些逻辑的操作