Skip to content

Commit b3720e1

Browse files
initial commit
0 parents  commit b3720e1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+20516
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules
2+
.vscode

app.js

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
const express = require('express')
2+
const mongoose = require('mongoose')
3+
const Code = require('./models/code.js')
4+
const app = express()
5+
6+
// connect to the mongo database
7+
mongoose.connect('mongodb://localhost/Projects')
8+
9+
// middlewares
10+
app.use(express.urlencoded({ extended: true }))
11+
app.set('view engine', 'ejs')
12+
app.use(express.static('public'))
13+
14+
// ROUTERS
15+
// - /
16+
app.get('/', (req, res)=>{
17+
res.redirect('/codebox')
18+
})
19+
20+
// - /codebox
21+
app.get('/codebox', (req, res)=>{
22+
res.render('index', { title: 'Code Box'})
23+
})
24+
25+
// - /create
26+
app.get('/create', (req, res)=>{
27+
res.render('create', { title: 'Create your Code Box' })
28+
})
29+
30+
// POST request - /codeBoxes
31+
app.post('/codeBoxes', (req, res) => {
32+
const code = new Code(req.body);
33+
34+
code.save()
35+
.then(result => {
36+
res.redirect('/boxes');
37+
})
38+
.catch(err => {
39+
console.log(err);
40+
});
41+
});
42+
43+
// displaying all the code boxes
44+
// - /boxes
45+
app.get('/boxes', (req, res)=>{
46+
Code.find().sort({ createdAt: -1 })
47+
.then(result => {
48+
res.render('boxes', { code: result, title: 'All Code Boxes' });
49+
})
50+
.catch(err => {
51+
console.log(err);
52+
})
53+
})
54+
55+
// router for if the user click on any code box
56+
// - /details
57+
app.get('/details/:id', (req, res)=>{
58+
const id = req.params.id;
59+
Code.findById(id)
60+
.then(result => {
61+
res.render('details', { code: result, title: 'code Details' });
62+
})
63+
.catch(err => {
64+
res.render('404', { title: '404 Page not found' })
65+
});
66+
})
67+
68+
app.get('/about', (req, res)=>{
69+
res.render('about', { title: 'About' })
70+
})
71+
72+
app.listen(3000)
73+
74+
app.use((req, res)=>{
75+
res.render("404", { title: '404 Page not found'})
76+
})

models/code.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const mongoose = require('mongoose')
2+
3+
const codeSchema = mongoose.Schema({
4+
name: {
5+
type: String,
6+
required: true
7+
},
8+
description: {
9+
type: String,
10+
required: true
11+
},
12+
language: {
13+
type: String,
14+
required: true
15+
},
16+
code: {
17+
type: String,
18+
required: true
19+
}
20+
}, { timestamps: true })
21+
22+
module.exports = mongoose.model('codeBoxes', codeSchema)

0 commit comments

Comments
 (0)