Tedious connection 和 request 事件侦听器是否可以放在 Node.js 的单独模块中?
Can Tedious connection and request event listeners be put in a separate module for Node.js?
这是我第一次在这里提问,如有不当之处,敬请谅解。
我对 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 模块一部分的方法。我试过以几种方式在它之前添加 exports 和 module.exports 但没有成功。它监听一个事件而不是一个正常的功能让我很困惑。
我将如何在单独的文件中获取事件侦听器?
我也在尝试尽可能简单地解决这个问题,所以我现在只使用 Node.js 和 Tedious。
改变
exports.makeConnection = function () {
到
function makeConnection() {
...
module.exports = {makeConnection}
作为附加更改,您需要将连接侦听器放在与连接变量相同的范围内。就我个人而言,我也会让 makeConnection return 成为连接的 Promise,这样您就不会在 failed/not 尚未连接的连接上进行操作。像
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}
这是我第一次在这里提问,如有不当之处,敬请谅解。
我对 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 模块一部分的方法。我试过以几种方式在它之前添加 exports 和 module.exports 但没有成功。它监听一个事件而不是一个正常的功能让我很困惑。
我将如何在单独的文件中获取事件侦听器? 我也在尝试尽可能简单地解决这个问题,所以我现在只使用 Node.js 和 Tedious。
改变
exports.makeConnection = function () {
到
function makeConnection() {
...
module.exports = {makeConnection}
作为附加更改,您需要将连接侦听器放在与连接变量相同的范围内。就我个人而言,我也会让 makeConnection return 成为连接的 Promise,这样您就不会在 failed/not 尚未连接的连接上进行操作。像
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}