MEAN.JS - Veri Modeli Oluşturma
Bu bölümde, Node-express uygulamamızda veri modelinin nasıl kullanılacağını göstereceğiz.
MongoDB, verileri JSON formatında kaydeden açık kaynaklı bir NoSQL veritabanıdır. İlişkisel veritabanlarında kullandığımız gibi tablo ve satırlar yerine verileri depolamak için belge odaklı veri modelini kullanır . Bu bölümde, veri modeli oluşturmak için Mongodb kullanıyoruz.
Veri modeli, bir belgede hangi verilerin mevcut olduğunu ve bir belgede hangi verilerin olması gerektiğini belirtir. MongoDB'yi kurmak için Resmi MongoDB kurulumuna bakın .
Önceki bölüm kodumuzu kullanacağız. Kaynak kodunu bu linkten indirebilirsiniz . Zip dosyasını indirin; sisteminize çıkartın. Terminali açın ve npm modül bağımlılıklarını kurmak için aşağıdaki komutu çalıştırın.
$ cd mean-demo
$ npm install
Uygulamaya Firavun Faresi Ekleme
Mongoose, MongoDB'yi güçlü hale getirerek veriler için ortam ve yapıyı belirleyen bir veri modelleme kitaplığıdır. Mongoose'u komut satırı üzerinden bir npm modülü olarak kurabilirsiniz. Kök klasörünüze gidin ve aşağıdaki komutu çalıştırın -
$ npm install --save mongoose
Yukarıdaki komut, yeni paketi indirecek ve onu node_modules klasörüne kuracaktır . --Save bayrak için bu paketi katacak package.json dosyası.
{
"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"
}
}
Bağlantı Dosyasını Kurmak
Veri modeliyle çalışmak için uygulama / modeller klasörünü kullanacağız . Aşağıdaki gibi model Students.js oluşturalım -
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: ''}
});
Dosyayı oluşturup uygulamada kullanarak bağlantı dosyasını kurabilirsiniz. Adlı bir dosya oluşturun db.js içinde config / db.js . Dosya içeriği aşağıdaki gibidir -
module.exports = {
url : 'mongodb://localhost:27017/test'
}
Burada test , veritabanı adıdır.
Burada MongoDB'yi yerel olarak kurduğunuz varsayılmaktadır. Kurulduktan sonra Mongo'yu başlatın ve ad testi ile bir veritabanı oluşturun. Bu db, öğrenciler adına göre bir koleksiyona sahip olacak. Bu koleksiyona bazı veriler ekleyin. Bizim durumumuzda, db.students.insertOne ({isim: 'Manisha', yer: 'Pune', ülke: 'Hindistan'}) kullanarak bir kayıt ekledik;
Bring db.js içinde, yani uygulamaya dosyayı server.js . Dosyanın içeriği aşağıda gösterildiği gibidir -
// 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}!`));
Ardından, uygulamayı aşağıdaki komutla çalıştırın -
$ npm start
Aşağıdaki resimde gösterildiği gibi bir onay alacaksınız -
Şimdi tarayıcıya gidin ve yazın http://localhost:3000/api/students. Sayfayı aşağıdaki resimde gösterildiği gibi alacaksınız -