首页 > 解决方案 > 使用 Node.js 提供的 mssql 包在 Node.js express 应用程序中执行存储过程

问题描述

如何在我在 Node.js express 框架上创建的应用程序中执行在 Microsoft SQL Server 数据库中创建的存储过程,该框架使用 Node.js 提供的 MSSQL 包连接到数据库并执行与数据库相关的任务?

请清楚如何传递参数以及存储过程名称如何通过mssql包在应用程序中进行引用。

我对这项技术很陌生,所以任何帮助都将不胜感激。谢谢你。

标签: sql-servernode.jsexpress

解决方案


有很多方法可以做到这一点,许多软件包可以提供帮助。我会推荐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问号 + 数组语法将值注入到这样的准备好的语句中。


推荐阅读