这是我在这里的第一个问题,因此请原谅任何礼节上的异常。
我是Node.js和后端编程的新手。现在,我正在使用Node和Tedious连接到本地SQL服务器。我想保持main.js文件整洁,因此尝试将与SQL连接相关的所有内容放在单独的js文件中。以下是我对main.js的最简单的可能形式。
var http = require('http');
var sqlmodule = require('./SQLconnection');
http.createServer(function (req, res) {
sqlmodule.makeConnection();
}).listen(8080);
然后,我有我的SQLconnection.js文件。
var Connection = require('tedious').Connection;
exports.makeConnection = function () {
var config = {
userName: 'XXXXXX',
password: 'XXXXXX',
server: 'XXXXXX'
};
var connection = new Connection(config);
};
//The below code is my event listener but I don't know how
//to incorporate it as part of the module.
connection.on('connect', function(err) {
if (err) {
console.error('Connection error', err);
} else {
console.log('Connected');
}
});
当文件中不存在侦听器时,我没有任何问题,但是找不到将其包含在SQLconnection.js模块中的方法。我曾尝试以几种方式添加export和module.exports,但是没有成功。它在监听一个事件而不是正常的功能让我很沮丧。
我将如何在单独的文件中获取事件监听器?我还尝试尽可能地做到这一点,因此我现在仅使用Node.js和Tedious。
更改
exports.makeConnection = function () {
至
function makeConnection() {
...
module.exports = {makeConnection}
作为一项附加更改,您需要将连接侦听器置于与连接变量相同的作用域内。就个人而言,我还将使makeConnection返回该连接的一个Promise,因此您不会在失败/尚未连接的连接上进行操作。就像是
var Connection = require('tedious')。Connection;
function makeConnection() {
var config = {
userName: 'XXXXXX',
password: 'XXXXXX',
server: 'XXXXXX'
};
return new Promise((resolve, reject) => {
var connection = new Connection(config);
connection.on('connect', function(err) {
if (err) return reject(err);
resolve(connection);
});
}
};
module.exports = {makeConnection}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句