MEAN.JS-データモデルの構築
この章では、Node-expressアプリケーションでデータモデルを使用する方法を示します。
MongoDBは、データをJSON形式で保存するオープンソースのNoSQLデータベースです。リレーショナルデータベースで使用するようなテーブルと行を使用する代わりに、ドキュメント指向のデータモデルを使用してデータを格納します。この章では、Mongodbを使用してデータモデルを構築しています。
データモデルは、ドキュメントに存在するデータと、ドキュメントに存在する必要のあるデータを指定します。MongoDBをインストールするには、MongoDBの公式インストールを参照してください。
前の章のコードを使用します。このリンクからソースコードをダウンロードできます。zipファイルをダウンロードします。システムに抽出します。ターミナルを開き、以下のコマンドを実行してnpmモジュールの依存関係をインストールします。
$ cd mean-demo
$ npm install
アプリケーションへのマングースの追加
Mongooseは、MongoDBを強力にすることで、データの環境と構造を指定するデータモデリングライブラリです。コマンドラインからMongooseをnpmモジュールとしてインストールできます。ルートフォルダに移動し、以下のコマンドを実行します-
$ npm install --save mongoose
上記のコマンドは、新しいパッケージをダウンロードして、node_modulesフォルダーにインストールします。--saveフラグは、このパッケージを追加しますpackage.jsonのファイル。
{
"name": "mean_tutorial",
"version": "1.0.0",
"description": "this is basic tutorial example for MEAN stack",
"main": "server.js",
"scripts": {
"test": "test"
},
"keywords": [
"MEAN",
"Mongo",
"Express",
"Angular",
"Nodejs"
],
"author": "Manisha",
"license": "ISC",
"dependencies": {
"express": "^4.17.1",
"mongoose": "^5.5.13"
}
}
接続ファイルの設定
データモデルを操作するには、app / modelsフォルダーを使用します。以下のようにモデルstudents.jsを作成しましょう−
var mongoose = require('mongoose');
// define our students model
// module.exports allows us to pass this to other files when it is called
module.exports = mongoose.model('Student', {
name : {type : String, default: ''}
});
ファイルを作成してアプリケーションで使用することにより、接続ファイルをセットアップできます。ファイルを作成db.js内のconfig / db.jsを。ファイルの内容は以下のとおりです。
module.exports = {
url : 'mongodb://localhost:27017/test'
}
ここで、testはデータベース名です。
ここでは、MongoDBがローカルにインストールされていることを前提としています。インストールしたら、Mongoを起動し、名前テストでデータベースを作成します。このデータベースには、学生という名前のコレクションがあります。このコレクションにいくつかのデータを挿入します。この例では、db.students.insertOne({name: 'Manisha'、place: 'Pune'、country: 'India'});を使用してレコードを挿入しました。
持参db.jsで、すなわち、アプリケーションにファイルをserver.js。ファイルの内容は以下のとおりです。
// modules =================================================
const express = require('express');
const app = express();
var mongoose = require('mongoose');
// set our port
const port = 3000;
// configuration ===========================================
// config files
var db = require('./config/db');
console.log("connecting--",db);
mongoose.connect(db.url); //Mongoose connection created
// frontend routes =========================================================
app.get('/', (req, res) ⇒ res.send('Welcome to Tutorialspoint!'));
//defining route
app.get('/tproute', function (req, res) {
res.send('This is routing for the application developed using Node and Express...');
});
// sample api route
// grab the student model we just created
var Student = require('./app/models/student');
app.get('/api/students', function(req, res) {
// use mongoose to get all students in the database
Student.find(function(err, students) {
// if there is an error retrieving, send the error.
// nothing after res.send(err) will execute
if (err)
res.send(err);
res.json(students); // return all students in JSON format
});
});
// startup our app at http://localhost:3000
app.listen(port, () ⇒ console.log(`Example app listening on port ${port}!`));
次に、以下のコマンドでアプリケーションを実行します-
$ npm start
下の画像に示すように確認が表示されます-
次に、ブラウザに移動して入力します http://localhost:3000/api/students。下の画像に示すようなページが表示されます-