MAR*_*att 2 javascript node.js
以下是我的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;
Run Code Online (Sandbox Code Playgroud)
我这样用它
var sqlHelper = require('../SQLHelper.js');
sqlHelper.ExecuteDataset(q, params, function(results) {//Here I get error
console.log(results)
},
function(err) {
console.log(err);
});
Run Code Online (Sandbox Code Playgroud)
我得到以下错误TypeError:sqlHelper.ExecuteDataset不是一个函数
我不知道这里有什么不对.请帮助.
您必须先创建一个实例,SQLHelper然后才能拥有原型方法.原型属性在对象的实例上可用,而不在构造函数上.
如果你想要一个单例(每个共享只有一个对象),你可以这样做:
// export an instance of our object
module.exports = new SQLHelper();
Run Code Online (Sandbox Code Playgroud)
或者,如果您每次使用它时都想要一个单独的对象,您可以更改它的使用位置:
// load module and create an instance
let sqlHelper = new (require('../SQLHelper.js'))();
Run Code Online (Sandbox Code Playgroud)
或者,如果您实际上没有任何实例数据并且您只想使用命名空间,则可以执行以下操作:
let SQLHelper = {};
SQLHelper.ExecuteDataset = ...
module.exports = SQLHelper;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2638 次 |
| 最近记录: |