Добавил:
abhai2013@gmail.com Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab3

.docx
Скачиваний:
7
Добавлен:
30.06.2018
Размер:
35.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

Соседние файлы в предмете Кросс-платформенное программирование