令人惊讶的是,不工作的是来自mssql package page。为什么这个在我的机器上不起作用?我做错了什么?一个工作是一些例子,我发现其他地方在线和它的工作很好。
作为一个旁注-我需要异步地做这些请求吗?不工作的那个使用async
,我应该什么时候使用这个?
var express = require('express');
var app = express();
const sql = require("mssql");
//Configuration for the database
const config = {
user: 'sa',
password: 'password',
server: 'ipAddress',
database: 'DBName',
trustServerCertificate: true, //Only setting this to true for testing on a local test server; Change to false when deploying to live
encrypt: true,
};
app.get('/', function (req, res) {
//THIS DOESNT WORK
async () => {
try {
await sql.connect(config)
var request = new sql.Request();
const result = await request.query(`exec spTest null`)
console.dir(result)
res.send(result.recordset)
} catch (err) {
// ... error checks
console.dir(err)
}
}
//THIS ONE WORKS!
// sql.connect(config, function (err) {
// if (err) console.log(err);
// // create Request object
// var request = new sql.Request();
// // query to the database and get the records
// request.query('exec spTest null ', function (err, recordset) {
// if (err) console.log(err)
// // send records as a response
// console.log(recordset)
// res.send(recordset);
// });
// });
});
var server = app.listen(5000, function () {
console.log('Server is running...');
});
不起作用的一个使localhost:5000不加载任何东西。但是,成功运行的服务器将返回SP的结果:
{"recordsets":[[{"SomeTimestamp":"2023-06-21T11:32:03.827Z","OtherField":""}]],"recordset":[{"SomeTimestamp":"2023-06-21T11:32:03.827Z","OtherField":""}],"output":{},"rowsAffected":[1,1]}
1条答案
按热度按时间envsm3lx1#
看起来“非工作”代码在请求处理函数中定义了
async
函数,并且在请求该路由时可能不会被“调用”。试试改成这样