我正在尝试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() {});
});
});
});
提前感谢您的帮助