乏味的连接事件没有触发功能

Tedious on connect event not firing in function

我正在尝试在节点 js 中使用 Tedious 连接到本地 SQL 服务器数据库。

function connectToSql() {
    sqlConnection.on('connect', function (err) {
        // If no error, then good to go...
        if (err) {
            console.log(err);
        } else {
            console.log('connected to SQL!');
            executeSelectStatement();
        }
    });
}

当我在声明后不久调用此函数时,它工作正常并打印 'connected to SQL!'。但是当我调用 SocketIO.Server 的这个函数 "connection" 事件时,它没有进行 sql 调用。我的代码如下:

ioServer.on('connection', function (socket: SocketIO.Socket) {
    console.log('a user connected');
    connectToSql();   
});

它只打印 'a user connected'

有什么建议为什么会这样吗?

很可能 SQL 连接在 Socket.io 连接发生之前就已建立。既然如此,那么connect事件应该已经发生了。

如果您只想在收到 Socket.io 连接后建立 SQL 连接,您可能需要在那个时候 new Connection(config); 同时订阅 [=10] =] 事件.

请注意,您可能不想为每个 Socket.io 连接建立一个 SQL 连接,因为多人使用该应用程序时,可能会产生大量额外开销不需要。