是否可以将Tedious连接和请求事件侦听器放在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模块中的方法。我曾尝试以几种方式添加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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Node js数据库连接在单独的模块中

是否可以在nodejs中的“ newListener”事件的事件侦听器回调中发出事件?

是否可以从Vue.js 2中的组件访问事件侦听器

事件侦听器和转换 JS

是否可以将事件侦听器绑定到来自外部脚本的影子dom中的元素?

我可以将socket.io事件侦听器分成不同的模块吗?

是否可以为数组中的每个对象定义事件侦听器?

为什么将AbstractBaseUser放在单独的模块中?

将点击侦听器放在mvvm android中的位置

将多个事件侦听器绑定到Node.js中的同一事件的好处是什么

是否可以在GAE中单独部署每个模块

Node JS事件侦听器无法按预期工作

Node.js事件侦听器被阻止?

事件侦听器是否需要位于IIFE中?

事件侦听器是否需要位于IIFE中?

是否可以将默认实现添加到表示侦听器的接口的方法中?

是否可以将新实体保留在@ Pre / PostPersist侦听器中?

是否可以将侦听器添加到Firebase中的多个数据库?

Node.js EventEmitter:如何将类上下文绑定到事件侦听器,然后删除此侦听器

我可以将表达式放在单独的模块中以更新表格吗?

Swing中的动作侦听器和事件源

将事件侦听器附加到UWP中的MotionAnimation

使用Express在单独的节点模块中执行POST请求

如何在node.js事件侦听器中获取事件名称?

将结构移到单独的文件中而不拆分到单独的模块中?

CRA:将特别大的模块提取到单独的块中?

JLink:将Java模块导出到单独的文件中

corona sdk 中的一个对象上是否可以有两个触摸事件侦听器?

Drools的默认stderr输出是否可以使用调试事件侦听器在stdout中更改为INFO?