1

我正在尝试使用节点 js 中的繁琐连接到本地 SQL Server 数据库。

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();
        }
    });
}

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

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

它只打印'a user connected'

有什么建议为什么会发生这种情况?

4

1 回答 1

1

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

如果您只想在收到 Socket.io 连接后建立 SQL 连接,那么您可能需要new Connection(config);在那时订阅该connect事件。

请注意,您可能不想为每个 Socket.io 连接建立 SQL 连接,因为有多个人使用该应用程序,很多额外的开销发生在可能不需要的地方。

于 2016-03-13T21:31:08.053 回答