繁体   English   中英

module.exports:不是函数

[英]module.exports: is not a function

以下是我的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不是一个函数

我不知道这是怎么了。 请帮助。

您必须先创建SQLHelper实例,然后才能使用原型方法。 原型属性在对象的实例上可用,而在构造函数上不可用。

如果要单例(每个人仅共享一个对象),可以执行以下操作:

// 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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM