ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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