ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.06.2019

Просмотров: 155

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Студента ИТ14-1 Красовского А.В.

Лабораторная работа 3
Изучение возможностей СУБД
MongoDB.

Цель: изучить основные возможности использования документоориентированной СУБД mongoDB как хранилище данных в приложениях.

Ход работы.

В ходе выполнения лабораторной работы было создано приложение, работающее в среде node.js с использованием языка JavaScript.

Код:

Server.js:

'use strict';


const express = require('express');

const path = require('path');

const getDb = require('./db.js');

const bodyParser = require('body-parser')


const app = express();


const IndexController = require('./controllers/IndexController');

const AddCommentController = require('./controllers/AddCommentController');


app.set('view engine', 'pug');

app.set('views', path.join(__dirname, 'views'));

app.use( bodyParser.json() );

app.use(bodyParser.urlencoded({extended: true}));

app.use(express.static('./assets'));


app.get('/', (req, res) => {

(new IndexController(req, res)).run();

});


app.post('/add-comment', async (req, res) => {

(new AddCommentController(req, res)).run();

});


app.listen(3000, () => {

console.log('App is running...');

});



IndexController.js:

const getDb = require('../db.js');


class IndexController {

constructor (req, res) {

this.req = req;

this.res = res;

}


async run () {

try{

var db = (await getDb()).db;

} catch (e) { console.log(e); }

let comments = db.collection('comments');


comments.find().sort({_id: -1}).toArray( (err, docs) => {

this.res.render('index', {

comments: docs,

error: err

});

});


}

}



AddCommentController.js:

const getDb = require('../db.js');


class AddCommentController {

constructor (req, res) {

this.req = req;

this.res = res;

}


async run () {

let db = (await getDb()).db;


const comments = db.collection('comments');

let username = this.req.body.username,

comment = this.req.body.comment;

if (username && comment) {

comments.insertOne({username: username, content: comment}, (err, result) => {

if(err) {

this.res.send(err);

}

this.res.redirect(200, '/');

});

}

}

}


module.exports = AddCommentController;







Результат:



Вывод: в ходе выполнения лабораторной работы мной были получены навыки использования СУБД mongoDB в роли хранилища данных для серверных приложений Node.Js.s


Смотрите также файлы