Node.js Node js sql-节点程序不';t出口
我是NodeJS的新手。我知道如果有任何回调或事件仍然挂起,节点将等待事件循环。我已经编写了一个连接数据库和获取数据的代码。即使在读取数据之后,节点也不会退出Node.js Node js sql-节点程序不';t出口,node.js,Node.js,我是NodeJS的新手。我知道如果有任何回调或事件仍然挂起,节点将等待事件循环。我已经编写了一个连接数据库和获取数据的代码。即使在读取数据之后,节点也不会退出 var sql = require("mssql"); var config = { user: 'data', password: 'abc@123', server: 'localhost', database: 'master' }; sql.connect(config, function (e
var sql = require("mssql");
var config = {
user: 'data',
password: 'abc@123',
server: 'localhost',
database: 'master'
};
sql.connect(config, function (err) {
var request = new sql.Request();
var i;
request.query('GetData').then(
ri=>{
console.log(ri.recordset.map(o=>o.Key));
})
})
有人能告诉我为什么会发生这种情况吗?您可以在查询完成后关闭连接,这将允许流程退出:
var sql = require("mssql");
var config = {
user: 'data',
password: 'abc@123',
server: 'localhost',
database: 'master'
};
sql.connect(config).then(pool => {
var request = new sql.Request();
request.query('GetData;').then(ri => {
console.log(ri.recordset.map(o => o.Key));
// Close the pool now we're done with it...
pool.close();
});
}).catch (err => {
console.error("An error occurred:", err);
});
您可以在查询完成后关闭连接,这将允许进程退出:
var sql = require("mssql");
var config = {
user: 'data',
password: 'abc@123',
server: 'localhost',
database: 'master'
};
sql.connect(config).then(pool => {
var request = new sql.Request();
request.query('GetData;').then(ri => {
console.log(ri.recordset.map(o => o.Key));
// Close the pool now we're done with it...
pool.close();
});
}).catch (err => {
console.error("An error occurred:", err);
});
节点未关闭,因为sql.connext创建了一个活动连接,因此在节点眼中,事件侦听器已注册。可能try sql.close()节点没有关闭,因为sql.connext创建了一个活动连接,所以在节点看来,事件侦听器是注册的。也许可以试试sql.close()