【发布时间】:2015-08-25 18:18:33
【问题描述】:
我正在尝试 require 一个自调用 Javascript 函数的模块,并在我 require 时向它传递一个参数。 “必需”对象总是说“对象不是函数”。
以下代码是否可行,如果可以,我哪里出错了?
模块
var _ = require('lodash');
var userRepository = (function(userRecords) {
console.log(userRecords);
var findByUsername = function(username, cb) {
//find username in the userNameData
//this may have been retrieved from the DB or passed in as mock data from the tests
var user = _.find(userRecords, {
"email": username
});
if (user) {
return cb(null, user);
} else {
return cb(null, null);
}
};
return {
findByUserName: findByUsername
};
})();
module.exports = userRepository;
在代码中的使用
var userData = require('../test/data/users.json'),
userRepository = require('../db/userRepository')(userData);
describe('User Repository', function() {
describe('Find by username', function() {
it('should return a user record for <user> if the username <username> is found', function() {
var username = "test@testing.com";
var user = userRepository.findByUsername(username, function() {});
});
});
});
提前感谢您的帮助
【问题讨论】:
标签: javascript node.js revealing-module-pattern