gpt4 book ai didi

javascript - Mongoose 上的这种保存方法如何在不说明哪个数据库的情况下工作?

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:32 25 4
gpt4 key购买 nike

首先,我有一个名为“Projects”的工作区文件夹

在此文件夹中,我有 2 个文件夹:

型号:

1) Something-model =>

const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const Something-Schema = new Schema({
name: String,
weight: Number,
length: Number
});
const Something-model = mongoose.model(
"SomeModel",
Something-Schema
);

module.exports = Something-model;

工作:创纪录的模特。

数据库:

1) Connection.js =>

const mongoose = require("mongoose");

//connect to mongoDB
mongoose.connect(
"mongodb://localhost/Database",
{ useNewUrlParser: true }
);
mongoose.connection
.once("open", () => {
console.log("Connection has been made!");
})
.on("error", err => {
console.log("Connection hasn't been made. Got this: " + err);
});

作业:它连接到数据库。

2) 保存-test.js =>

let assert = require("assert");
let someModel = require("../Models/StevenChars");
// Data Saving Test

describe("Data-Saving", function() {
it("Saving a data to database", function() {
let Record-One = new someModel({
name: "Jack",
weight: 55,
height: 150
});
Record-One.save().then(function() {
assert(Record-One.isNew === false);
});
});
});

作业:将记录保存到数据库。

现在的问题是,如果 save() 不知道要保存到的数据库的位置(顺便说一句,它位于 Connection.js 中),那么它应该如何保存任何内容?

我用 Mocha 做了它,它说测试已经通过,但我仍然很困惑它是如何工作的。我只按照 Net Ninja 教程的步骤进行操作,但他没有解释 save() 的实际工作原理。

那么这是如何工作的呢?对不起,如果这是一个愚蠢的问题,我是服务器和数据库的初学者,我搜索了保存的工作原理,但没有得到答案。如果有人试图向我解释这一点,我将非常感激。

最佳答案

从看来你正在尝试做的目标是创建一个 Mocha 单元测试,它将通过 mongoose 作为提供者写入 mongodb。

好的,这就是手头的任务。为此,您需要熟悉以下几件事:

  1. Mocha以及如何编写测试。为什么需要"before" and "after"以及他们的主要目的。
  2. Mongoose Models以及它们如何工作 CRUD
  3. MongoDB这样您就可以实际连接并查看测试之后/期间是否获得了预期结果

话虽如此,这里是此类测试的一个示例:

describe('Database Tests', function() {
//Before starting the test, create a database connection
//Once a connection is established invoke done()
before(function (done) {
mongoose.connect('mongodb://localhost/testDatabase');
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error'));
db.once('open', function() {
console.log('We are connected to test database!');
done();
});
});
describe('Test Database', function() {
//Save object with 'name' value of 'Mike"
it('New name saved to test database', function(done) {
var testName = Name({
name: 'Mike'
});

testName.save(done);
});
});
//After all tests are finished drop database and close connection
after(function(done){
mongoose.connection.db.dropDatabase(function(){
mongoose.connection.close(done);
});
});
});

您可以查看更多内容 example here或者只是搜索mocha mongoose testing

关于javascript - Mongoose 上的这种保存方法如何在不说明哪个数据库的情况下工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51956836/

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