< Buff行情>
测试助手.js
< /块引用>
const mongoose=require(“mongoose”);
mongoose.promise=global.promise;
之前(完成=>){
mongoose.connect(“mongodb://myuser:mypassword@ds221339.mlab.com:21339/clicker”,usenewurlparser:true);
Mongoose.连接
.ONCE(“打开”,(>完成())
.on(“错误”,错误=>){
console.warn(“错误”,错误)
})
})
//Fixme:保存两次时出错
每次之前(完成=>){
console.log(mongoose.connection.collections.forums)
mongoose.connection.dropcollection(“论坛”,()=>){
DONE();
})
})
< /代码>
所以当我用Mocha运行我的测试套件时,一切都按预期工作。
但是,当我更改某个内容并再次运行它时,我会得到错误
< Buff行情>
overwriteModelError:cannot overwriteforums.model once compiled.
< /块引用>
我将MLAB与Mongoose一起使用,而不是本地安装的MongoDB。也许有什么关系?我想不出来,我检查了所有的文件和导入文件等10次,没有发现错误,是吗?
问题是这些解决方案对我的问题都没有帮助。
我得到了标题中的错误,并进行了以下设置:
文件夹结构:

我的模型如下:
福尔摩斯
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const topicGroupSchema = require("./topicGroups");
const forumSchema = new Schema({
title: String,
topicGroups: [topicGroupSchema]
})
const Forum = mongoose.model("forums", forumSchema);
module.exports = Forum;
专题小组
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const topicGroupSchema = new Schema({
title: String,
// Todo: add topics
})
module.exports = topicGroupSchema;
我的test_helper和saveforum_test.js文件如下:
saveforum测试.js
const assert = require("assert");
const Forum = require("../model/forums")
describe("Creating records", () => {
it("can save a new forum", (done) => {
const forum = new Forum({
title: "CodeHUB"
})
forum.save()
.then(() => {
assert(forum.isNew)
done();
})
})
})
TestyHelp.js
const mongoose = require("mongoose");
mongoose.Promise = global.Promise;
before(done => {
mongoose.connect("mongodb://myuser:mypassword@ds221339.mlab.com:21339/clicker", { useNewUrlParser: true });
mongoose.connection
.once("open", () => {done()})
.on("error", error => {
console.warn("error", error)
})
})
// FIXME: error when saved twice
beforeEach(done => {
console.log(mongoose.connection.collections.forums)
mongoose.connection.dropCollection("forums", () => {
done();
})
})
所以当我用Mocha运行我的测试套件时,一切都按预期工作。
但是,当我更改某个内容并再次运行它时,我会得到错误
overwriteModelError:无法覆盖forums模型一经编译。
我将MLAB与Mongoose一起使用,而不是本地安装的MongoDB。也许有什么关系?我想不出来,我检查了所有的文件和导入文件等10次,没有发现错误,是吗?