Skip to content

Commit b38924b

Browse files
first commit
0 parents  commit b38924b

File tree

8 files changed

+173
-0
lines changed

8 files changed

+173
-0
lines changed

.gitignore

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# See https://help.github.com/ignore-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/express-server/node_modules
6+
7+
# testing
8+
/coverage
9+
10+
# production
11+
/build
12+
13+
# misc
14+
.DS_Store
15+
.env.local
16+
.env.development.local
17+
.env.test.local
18+
.env.production.local
19+
20+
npm-debug.log*
21+
yarn-debug.log*
22+
yarn-error.log*

express-server/.babelrc

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"presets": ["es2015-node6"]
3+
}

express-server/app.js

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// ./express-server/app.js
2+
import express from 'express';
3+
import path from 'path';
4+
import bodyParser from 'body-parser';
5+
import logger from 'morgan';
6+
import mongoose from 'mongoose';
7+
import SourceMapSupport from 'source-map-support';
8+
9+
// import routes
10+
import todoRoutes from './routes/todo.server.route';
11+
12+
// define our app using express
13+
const app = express();
14+
15+
// allow-cors
16+
app.use(function(req,res,next){
17+
res.header("Access-Control-Allow-Origin", "*");
18+
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
19+
next();
20+
})
21+
22+
23+
// configure app
24+
app.use(logger('dev'));
25+
app.use(bodyParser.json());
26+
app.use(bodyParser.urlencoded({ extended:true }));
27+
app.use(express.static(path.join(__dirname, 'public')));
28+
29+
30+
// set the port
31+
const port = process.env.PORT || 3001;
32+
33+
// connect to database
34+
mongoose.Promise = global.Promise;
35+
mongoose.connect('mongodb://localhost/mern-todo-app', {
36+
useMongoClient: true,
37+
});
38+
39+
// add Source Map Support
40+
SourceMapSupport.install();
41+
42+
app.use('/api', todoRoutes);
43+
44+
app.get('/', (req,res) => {
45+
return res.end('Api working');
46+
})
47+
48+
// catch 404
49+
app.use((req, res, next) => {
50+
res.status(404).send('<h2 align=center>Page Not Found!</h2>');
51+
});
52+
53+
54+
55+
// start the server
56+
app.listen(port,() => {
57+
console.log(`App Server Listening at ${port}`);
58+
});

express-server/app_hooked.js

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
require('babel-register')({
2+
presets: ['es2015-node6']
3+
});
4+
require('./app.js');
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// ./express-server/controllers/todo.server.controller.js
2+
import mongoose from 'mongoose';
3+
4+
//import models
5+
import Todo from '../models/todo.server.model';
6+
7+
export const getTodos = (req,res) => {
8+
Todo.find().exec((err,todos) => {
9+
if(err){
10+
return res.json({'message':'Some Error'});
11+
}
12+
13+
return res.json({'message':'Todos fetched successfully',todos});
14+
});
15+
}
16+
17+
export const addTodo = (req,res) => {
18+
const newTodo = new Todo(req.body);
19+
newTodo.save((err,todo) => {
20+
if(err){
21+
return res.json({'message':'Some Error'});
22+
}
23+
24+
return res.json({'message':'Todo added successfully',todo});
25+
})
26+
}
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import mongoose from 'mongoose';
2+
3+
var Schema = mongoose.Schema({
4+
createdAt:{
5+
type: Date,
6+
default: Date.now
7+
},
8+
fullName: String,
9+
todoText: String
10+
});
11+
12+
export default mongoose.model('Todo', Schema);

express-server/package.json

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"name": "express-server",
3+
"version": "1.0.0",
4+
"description": "express server for mern todo app",
5+
"main": "app.js",
6+
"scripts": {
7+
"start": "nodemon app_hooked.js"
8+
},
9+
"repository": {
10+
"type": "git",
11+
"url": "git+https://github.com/bipinswarnkar1989/mern_stack_tutorial_todo_app.git"
12+
},
13+
"keywords": [
14+
"express",
15+
"server",
16+
"todo",
17+
"app"
18+
],
19+
"author": "Bipin Swarnkar",
20+
"license": "ISC",
21+
"bugs": {
22+
"url": "https://github.com/bipinswarnkar1989/mern_stack_tutorial_todo_app/issues"
23+
},
24+
"homepage": "https://github.com/bipinswarnkar1989/mern_stack_tutorial_todo_app#readme",
25+
"dependencies": {
26+
"babel-preset-es2015-node6": "^0.4.0",
27+
"babel-register": "^6.26.0",
28+
"body-parser": "^1.17.2",
29+
"mongoose": "^4.11.7",
30+
"morgan": "^1.8.2",
31+
"source-map-support": "^0.4.16"
32+
}
33+
}
+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// ./express-server/routes/todo.server.route.js
2+
import express from 'express';
3+
4+
//import controller file
5+
import * as todoController from '../controllers/todo.server.controller';
6+
7+
// get an instance of express router
8+
const router = express.Router();
9+
10+
router.route('/')
11+
.get(todoController.getTodos)
12+
.post(todoController.addTodo)
13+
14+
15+
export default router;

0 commit comments

Comments
 (0)