我正在使用 express.js+mongoose(在 github 上:https ://github.com/dreamerslab/express-todo-example )查看这个简单的待办事项应用程序示例。在 db.js 文件中,它定义了模式并连接到 mongodb:
var mongoose = require( 'mongoose' );
var Schema = mongoose.Schema;
var Todo = new Schema({
user_id : String,
content : String,
updated_at : Date
});
mongoose.model( 'Todo', Todo );
mongoose.connect( 'mongodb://localhost/express-todo' );
但它不出口任何东西。然而,在 app. 的文件中,需要 db.js 文件,如下所示:
// mongoose setup
require( './db' );
而不将其分配给任何变量。
所以这里出现了我不明白的部分:在 /routes/index.js 文件中,您只需像这样要求 mongoose 就可以使用模型和模式
var mongoose = require( 'mongoose' );
var Todo = mongoose.model( 'Todo' );
Todo.find(...)
...
那么 index.js 如何确定 Todo 模型中的内容,因为 mongoose 实例没有传递给它,而是重新需要它。
此外,如果我想将我的架构分成不同的文件,例如拥有 todo.js、user.js 等,那么设置结构的正确方法是什么?我是否应该在制作之前简单地要求 db.js 中的架构文件联系?
提前致谢!
待办事项应用程序的结构:
todo
|-- node_modules
| |-- ejs
| |-- express
| `-- mongoose
|
|-- public
| |-- images
| |-- javascripts
| `-- stylesheets
| |-- style.css
|
|-- routes
| `-- index.js
|
|-- views
| |-- index.ejs
| `-- layout.ejs
|
|-- .gitignore
|
|-- app.js
|
`-- package.json