【发布时间】:2016-11-11 12:20:01
【问题描述】:
考虑一个非常简单的 Express 4 应用程序结构:
-- app.js
-- models
|--db.js
|--news.js
其中news.js 包含一个猫鼬模式和一个基于该模式的模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var newsSchema = new Schema({
title: String,
subtitle: String,
// other fields...
});
var News = mongoose.model('News', newsSchema);
据我了解,为了让app.js 使用News 模型,它必须要求脚本中的文件如下:require('./models/news')。此外,news.js 必须像这样导出模型:module.exports = News;。
但是,我遇到了一些脚本,它们不会导出在单独文件中定义的模型(或任何相关内容),但仍然能够在不同文件中使用这些模型和/或架构,只需要求模型文件,然后做这样的事情:
var mongoose = require('mongoose');
var News = mongoose.model('News');
这种行为怎么可能?这是猫鼬的一个特殊功能?如果模型/架构未在该文件中导出,文件如何使用该文件中定义的模型或架构?
【问题讨论】:
标签: node.js mongodb express mongoose mongoose-schema