如果可能的话,从Node.js调用MSSQL存储过程的建议方法是什么?文档https://www.npmjs.org/package/mssql非常好,但没有提到存储过程(SP)。
如果可能的话,从Node.js调用MSSQL存储过程的建议方法是什么?文档https://www.npmjs.org/package/mssql非常好,但没有提到存储过程(SP)。
这个链接的文档确实提到了存储过程:
var request = new sql.Request(connection);
request.input('input_parameter', sql.Int, 10);
request.output('output_parameter', sql.VarChar(50));
request.execute('procedure_name', function(err, recordsets, returnValue) {
// ... error checks
console.dir(recordsets);
});
我不确定回答这个问题是否明智,但对于未来的读者/谷歌搜索者可能是有价值的。
随着ES6/7对JS的增强,它正在变得越来越好。这是您可以使用async/await实现的方式:
async function getDataFromProcedure(dbConfig, procedureName) {
try {
await sql.connect(dbConfig);
const request = new sql.Request();
recordsets = await request.execute(procedureName);
return recordsets[0];
} catch (error) {
// handle error here
}
};
异步/等待的替代语法。我喜欢.then()格式。
return await this.sqlConnectionPool.connect().then(async (pool) => {
return await pool
.request()
.input("UserID", sql.Int, id)
.execute("spADF_User_Get")
.then((result) => {
if (result.recordset && result.recordset.length === 1) {
return result.recordset[0];
} else {
//Something bad happened
}
});
});