gpt4 book ai didi

node.js - mongoose.model( 'Foo',FooSchema)与要求( './models/Foos')

转载 作者:可可西里 更新时间:2023-11-01 10:42:54 25 4
gpt4 key购买 nike

一旦模式被创建,并被放置在模型文件夹中。一行代码就这样添加了...

// within '/models/Foos.js'
mongoose.model( 'Foo', FooSchema )

...但是在 Node 的 app.js 中也添加了对该模式的引用,因此...

var mongoose = require( 'mongoose' );
require( './models/Foos' )

...但是有什么区别呢?为什么我们需要做后者(即在 app.js 中添加对全局 Mongoose 对象的模式文件引用),当我们已经在模式文件本身(即 FoosSchema.js)中完成了一些看似相似的事情时,通过 mongoose.model('Foo', FooSchema)。怎么回事?

最佳答案

mongoose.model('Foo', FooSchema) 行在 mongoose 中全局注册模型,这意味着可以通过 mongoose 获取模型.model('Foo') 应用程序内的任何位置。但是,模型 Foo 仅在 foos.js 在应用程序中被 require 后才被注册。因此,您仍然需要在某处要求该文件,因此行 require( './models/Foos' )

编辑:使用循环来要求模型目录中的每个文件。

var normalizedPath = require('path').join(__dirname, "./models");
require("fs").readdirSync(normalizedPath).forEach(function(file) {
require("./models/" + file);
});

关于node.js - mongoose.model( 'Foo',FooSchema)与要求( './models/Foos'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32322786/

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