express.js + mongoose(github:https ://github.com/dreamerslab/express-todo-example )を使用したこの簡単なto-doアプリの例を見ています。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ファイルでは、このようなマングースを要求するだけでモデルとスキーマを使用できます
var mongoose = require( 'mongoose' );
var Todo = mongoose.model( 'Todo' );
Todo.find(...)
...
では、index.jsは、マングースインスタンスが渡されないが、そこで再必要とされるため、Todoモデルで何が行われるかをどのように把握するのでしょうか。
さらに、スキーマを別のファイルに分割する場合、たとえばtodo.js、user.jsなどを使用して、構造を設定する適切な方法は何ですか。作成する前に、db.jsのスキーマファイルが必要なだけです。繋がり?
前もって感謝します!
ToDoアプリの構造:
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