sql.execute不是节点js和sql server中的函数吗?

我正在尝试使用节点js调用一个sql服务器存储过程。 但是当我testing过程中,我得到这个错误,说“SQL.EXECUTE”不是一个函数。 这到底是什么意思呢? 我已经testing了存储过程与从我的C#代码中的以下数据,它工作正常,但它显示错误,当我尝试在Node js中调用它

var sql = require('mssql'); var config = { user: 'realm', password: 'friend', server: '172.10.3.22\\SQL2014', database: 'ElmaTest' }; var updateMember = function( Country, Distributor,OilMerchant,FileName,CargoType,OperatorID) { return sql.execute( { //I get error pointing at this particular line procedure: "p_GetAllocationDetail", params: { Country: { type: sql.VARCHAR, val: Country }, Distributor: { type: sql.VARCHAR, val: Distributor }, OilMerchant: { type: sql.NVARCHAR, val: OilMerchant }, FileName: { type: sql.VARCHAR, val: FileName }, CargoType: { type: sql.VARCHAR, val: CargoType }, OperatorID: { type: sql.VARCHAR, val: OperatorID } } } ); }; function connecttoDb() { // updateMember("elma","pass1234"); sql.connect(config, function (err) { if (err) console.log("message is for" + err); updateMember("Kenya","Total","Oilibya","","","Jessica"); }); } module.exports.datavalue = connecttoDb(); 

根据文档,你的语法是错误的。

它应该是

 var sql = require('mssql'); /*...*/ new sql.Request() .input('Country', sql.VarChar(50), Country) .input('Distributor', sql.VarChar(50), Distributor) .input( /* .... */) .execute('p_GetAllocationDetail').then(function(result) { console.dir(result); }).catch(function(err) { console.dir(err); }); 

简而言之: sql对象没有executefunction。 sql.Request()对象的一个​​实例有一个execute()函数。