Professional Documents
Culture Documents
js
const express =
require('express');
const path = require('path');
const bodyParser = require('body-parser');
const cors = require('cors');
const mongoose = require('mongoose');
app.listen(port, () => {
console.log('Server Stater at: ' + port);
});
mongoose.connect(dbConfig.database);
mongoose.connection
.on('connected', () => {
console.log('Connected to database ' + dbConfig.database);
})
.on('error', (err) => {
console.log('Error: ' + err);
});
app.use(bodyParser.json());
app.use(cors());
app.use('/v1/sections', sectionRoutes);
app.use('/v1/media', mediaRoutes);
// Set public folder
app.use(express.static(path.join(__dirname, 'ng-src/dist')));
MEAN-Stack-file-Upload/config/db.js
module.exports
= {
database: 'mongodb://localhost:27017/mb'
};
MEAN-Stack-file-Upload/routes/media-routes.js
const express =
require('express');
const routerMedia = express.Router();
const multer = require('multer');
const fs = require('fs');
const Media = require('../models/media');
module.exports = routerMedia;
MEAN-Stack-file-Upload/routes/section-routes.js
const express =
require('express');
const routerSections = express.Router();
// Get Sections
routerSections.get('/', (req, res, next) => {
Section.find({}, function (err, items) {
if (err) {
console.log(err);
res.json({ err: err });
} else {
res.json({ sections: items });
}
});
});
// Update Section
routerSections.put('/section/:id', (req, res, next) => {
const sectionId = req.params.id;
const sectionObj = req.body;
Section.findByIdAndUpdate({ _id: sectionId }, sectionObj, (err,
result) => {
if (err) {
res.status(500).json({ success: false, msg: 'Section Not
Updated. Error: ' + err });
} else if (!result) {
res.status(500).json({ success: false, msg: 'Section With
Specified ID Not Found.' }); // ???
} else {
result.save((err, result) => {
if (err) {
res.status(500).json({ success: false, msg: 'An
Error Occurred!' + err });
} else {
res.status(200).json({ success: true, msg:
'Secion Updated. ' + result });
}
});
}
});
});
module.exports = routerSections;
MEAN-Stack-file-Upload/models/media.js
const mongoose =
require('mongoose');
MEAN-Stack-file-Upload/models/section.js
const mongoose =
require('mongoose');
Frontend
MEAN-Stack-file-Upload/ng-src/src/app/app.module.ts
import {
BrowserModule }
from
'@angular/platform-
browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppRoutingModule } from './app-routing.module';
import { AdminService } from './admin/admin.service';
import { AppComponent } from './app.component';
import { HomeComponent } from './components/home/home.component';
@NgModule({
declarations: [
AppComponent,
HomeComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
AppRoutingModule
],
providers: [AdminService],
bootstrap: [AppComponent]
})
export class AppModule { }
MEAN-Stack-file-Upload/ng-src/src/app/app-routing.module.ts
import {
NgModule } from
'@angular/core';
import { RouterModule, Routes } from '@angular/router';
// Components
import { AppComponent } from './app.component';
import { HomeComponent } from './components/home/home.component';
@NgModule({
imports: [
RouterModule.forRoot(appRoutes)
],
exports: [RouterModule]
})
export class AppRoutingModule {}
MEAN-Stack-file-Upload/ng-src/src/app/components/home/home.component.ts/
import {
Component,
OnInit } from
'@angular/core';
import { AdminService } from '../../admin/admin.service';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
sections: any[];
ngOnInit() {
this.adminService.getAllSections().subscribe(data => {
this.sections = data.sections
});
}
}
MEAN-Stack-file-Upload/ng-src/src/app/components/home/home.component.html
<header>
</header>
<div class="thumbnail">
</div>
</div>
</div>
MEAN-Stack-file-Upload/ng-src/src/app/components/home/home.component.css
#sections{
max-width: 1200px;
margin: auto;
}
.section {
border: 1px solid #ddd;
clear: both;
overflow: auto;
margin: 1rem 0;
}
.thumbnail {
float: left;
margin-right: 2em;
}
.thumbnail img {
max-width: 180px;
}