gpt4 book ai didi

node.js - 重置 Mongoose 模型缓存

转载 作者:搜寻专家 更新时间:2023-10-31 22:57:49 25 4
gpt4 key购买 nike

我正在尝试让 mocha 的 --watch 选项起作用。它工作正常,直到我必须对 Mongoose 模型做任何事情。据我了解,显然 Mongoose 保留了某种缓存,我得到的错误是 tracked and closed .问题是,我对这整件事有点陌生,需要一些指导如何以及在哪里放置我需要的东西才能让它工作。所以,我尝试了什么:

  • creating a wrapper around mongoose.model .有效,但显然违背了 --watch 的目的。
  • 在我的 Mongoose 套件的“after” block 中断开与 Mongo 的连接(使用 mongoose.disconnect)。
  • 放弃 --watch 并每次都运行新鲜的测试。

在这三个中,显然是第三个作品,我真的很想使用我的构建工具的所有功能。所以,这就是我所拥有的。我哪里错了?

模型/user.js

var mongoose = require('mongoose'),
register = require('./_register');

var userSchema = mongoose.Schema({
email: String,
password: String
});

userSchema.methods.setPassword = function(password) {
this.password = password;
};

module.exports = mongoose.model('User', userSchema);

测试/models.user.js

var User = require('../models/user');

describe('User', function() {

describe('#setPassword()', function() {
it('should set the password', function() {
var user = new User();
user.setPassword('test');
user.password.should.not.equal('');
});
it('should not be in plaintext');
});

describe('#verifyPassword()', function() {
it('should return true for a valid password');
it('should return false for an invalid password');
});
});

最佳答案

我在我的 afterEach() block 中运行它取得了一些成功:

delete mongoose.models.YourModel;
delete mongoose.modelSchemas.YourModel;

关于node.js - 重置 Mongoose 模型缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16138103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com