gpt4 book ai didi

javascript - 模块.exports : is not a function

转载 作者:搜寻专家 更新时间:2023-11-01 00:21:33 24 4
gpt4 key购买 nike

以下是我的sqlhelper.js

var req = require("request");
var tp = require('tedious-promises');
var dbConfig = require('../config/connectionString.json');
var TYPES = require('tedious').TYPES;

function SQLHelper() {
}

SQLHelper.prototype.ExecuteDataset = function(query, params, callback, failure) {

tp.setConnectionConfig(dbConfig);
tp.sql(q);
$(params).each(function(idx) {
var p = params[idx];
tp.parameter(p.name, p.value);
});

tp.execute()
.then(function(results) {
callback(results)
}).fail(function(err) {
failure(err);
});
};

module.exports = SQLHelper;

我是这样用的

var sqlHelper = require('../SQLHelper.js');
sqlHelper.ExecuteDataset(q, params, function(results) {//Here I get error
console.log(results)
},
function(err) {
console.log(err);
});

我收到以下错误 TypeError: sqlHelper.ExecuteDataset is not a function

我不知道这里出了什么问题。请帮忙。

最佳答案

您必须先创建一个 SQLHelper 实例,然后它才会具有原型(prototype)方法。原型(prototype)属性可用于对象的实例,而不是构造函数。

如果你想要一个单例(每个人共享一个对象),你可以这样做:

// export an instance of our object
module.exports = new SQLHelper();

或者,如果您每次使用它时都想要一个单独的对象,您可以将使用它的位置更改为:

// load module and create an instance
let sqlHelper = new (require('../SQLHelper.js'))();

或者,如果您实际上没有任何实例数据,而只想使用命名空间,您可以这样做:

let SQLHelper = {};
SQLHelper.ExecuteDataset = ...

module.exports = SQLHelper;

关于javascript - 模块.exports : is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40949682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com