Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 诺德吉斯、摩卡和猫鼬_Javascript_Node.js_Module_Mongoose_Mocha.js - Fatal编程技术网

Javascript 诺德吉斯、摩卡和猫鼬

Javascript 诺德吉斯、摩卡和猫鼬,javascript,node.js,module,mongoose,mocha.js,Javascript,Node.js,Module,Mongoose,Mocha.js,我的结构如下: |server |db |mongooseTest.js |test |userModel.test.js |user |userModel.js |服务器 |分贝 |mongooseTest.js |试验 |userModel.test.js |使用者 |userModel.js 他们的代码是: mongooseTest.js var mongoose=require('mongoose'); module.exports=函数(){ var db=mongo

我的结构如下:

|server |db |mongooseTest.js |test |userModel.test.js |user |userModel.js |服务器 |分贝 |mongooseTest.js |试验 |userModel.test.js |使用者 |userModel.js 他们的代码是:

mongooseTest.js

var mongoose=require('mongoose'); module.exports=函数(){ var db=mongoose.createConnection('localhost','dbUnitTest'); db.on('connected',function(){ console.log('DB:'+DB.name+'本地:'+DB.host+':'+DB.port)); }); db.on('error',函数(err){ 控制台日志(err); }); 返回分贝; }; userModel.test.js

var assert=require('assert'), should=require('should'), conn=require('../db/mongooseTest'), UserModel=require('../user/UserModel'); 描述('用户模型',函数()){ 描述('Save',function()){ 它('保存…',函数(){ var db=conn(); var Model=db.Model('User'); var userModel=新模型({ 姓名:'我的名字', 电邮:'contact@com.br', 通行证:“anything123” }); userModel.on('save',函数(用户){ log('由用户的保存事件句柄传递'); }); 保存(函数(err,user){ log('由用户保存传递'); if(err)console.log(err); console.log(用户); }); }); }) }) userModel.js

var mongoose=require('mongoose'), crypto=require('crypto'), Schema=mongoose.Schema; var setPass=函数(值){ var salt='anyRandomSaltValue'; 这一套(‘盐’、盐); var pass=hashPass(值+盐); 回程通行证; } var hashPass=函数(值){ 返回crypto.createHash('sha1').update(value).digest('HEX'); } var userSchema=新模式({ 姓名:{ 类型:字符串, 必填项:true }, 电邮:{ 类型:字符串, 要求:正确, 独一无二:真的 }, 通过:{ 类型:字符串, 要求:正确, set:setPass }, 盐:{ 类型:字符串, 必填项:true } }); userSchema.method({ validatePass:函数(senha){ var salt=this.get('salt'); var passSha=hashPass(senha+盐); return passSha===this.get('senha'); }, }); userSchema.static({ findByEmail:函数(电子邮件、成功、错误){ 这是芬顿({ 电邮:电邮 },函数(e,o){ 如果(e){ if(error)error(e); }否则{ 如果(成功)成功(o); } }); }, }); module.exports=mongoose.model(“用户”,userSchema); 问题是。。。 当我运行“mocha”来执行单元测试时,save函数的回调不会执行

谢谢大家

使用该方法解决问题

我也找到了看起来不错的,但我没有尝试

var mongoose = require('mongoose'); module.exports = function() { var db = mongoose.createConnection('localhost', 'dbUnitTest'); db.on('connected', function() { console.log('DB: ' + db.name + ' local: ' + db.host + ':' + db.port); }); db.on('error', function(err) { console.log(err); }); return db; }; var assert = require('assert'), should = require('should'), conn = require('../db/mongooseTest'), UserModel = require('../user/userModel'); describe('User Model', function() { describe('Save', function() { it('Saving...', function() { var db = conn(); var Model = db.model('User'); var userModel = new Model({ name: 'My Name', email: 'contact@com.br', pass: 'anything123' }); userModel.on('save', function(user) { console.log('Passed by save event handle from user'); }); userModel.save(function(err, user) { console.log('Passed by save from user'); if(err) console.log(err); console.log(user); }); }); }) }) var mongoose = require('mongoose'), crypto = require('crypto'), Schema = mongoose.Schema; var setPass = function(value) { var salt = 'anyRandomSaltValue'; this.set('salt', salt); var pass = hashPass(value + salt); return pass; } var hashPass = function(value) { return crypto.createHash('sha1').update(value).digest('HEX'); } var userSchema = new Schema({ name: { type: String, required: true }, email: { type: String, required: true, unique: true }, pass: { type: String, required: true, set: setPass }, salt: { type: String, required: true } }); userSchema.method({ validatePass: function(senha) { var salt = this.get('salt'); var passSha = hashPass(senha + salt); return passSha === this.get('senha'); }, }); userSchema.static({ findByEmail: function(email, success, error) { this.findOne({ email: email }, function(e, o) { if(e) { if(error) error(e); } else { if(success) success(o); } }); }, }); module.exports = mongoose.model("User", userSchema);