Created
May 28, 2018 09:09
-
-
Save rizwan92/d55f4768f8893b8308331434b336e1bf to your computer and use it in GitHub Desktop.
my server.js file
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import express from 'express'; | |
import mongoose from 'mongoose'; | |
import bodyParser from 'body-parser'; | |
import jwt from 'jsonwebtoken'; | |
import path from 'path'; | |
import fileUpload from 'express-fileupload'; | |
import sassMiddleware from 'node-sass-middleware'; | |
import React from 'react'; | |
import { StaticRouter } from 'react-router-dom'; | |
import ReactDomServer from 'react-dom/server'; | |
import webpack from 'webpack'; | |
import webpackMiddleware from 'webpack-dev-middleware'; | |
import webpackConfig from '../webpack.config.js'; | |
import App from '../client/App'; | |
import InstituteModel from './model/InstituteModel'; | |
import Police from './api/police'; | |
import Booking from './api/booking'; | |
import User from './api/user'; | |
import Institute from './api/institute'; | |
console.log(process.env.NODE_ENV); | |
var mongoDB = process.env.MONGODB ||'mongodb://localhost:27017/atithi'; | |
mongoose.connect(mongoDB); | |
mongoose.Promise = global.Promise; | |
var db = mongoose.connection; | |
db.on('error', console.error.bind(console, 'MongoDB connection error:')); | |
db.once('open', function() { | |
console.log('we are connected to mongodb'); | |
}); | |
const server = express(); | |
server.set('port', process.env.PORT || 8000); | |
server.set('view engine','ejs'); | |
server.use(sassMiddleware({ | |
src:path.join(__dirname, '/../client/sass/'), | |
dest:path.join(__dirname, '/../public/'), | |
} | |
)); | |
server.use(webpackMiddleware(webpack(webpackConfig),{ | |
lazy:true,exclude: /node_modules/, | |
})); | |
server.use(fileUpload()); | |
server.use(bodyParser.json()); | |
server.use(bodyParser.urlencoded({ | |
extended: true | |
})); | |
server.use('/api/institute',Institute); | |
server.use('/api/police',Police); | |
server.use('/api/booking',Booking); | |
server.use('/api/user',User); | |
server.use(express.static('public')); | |
server.get('*',(req,res)=>{ | |
const context = {}; | |
const appwithrouter = ( | |
<StaticRouter location={req.url} context={context}> | |
<App initialData={true}/> | |
</StaticRouter> | |
); | |
res.render('index',{ | |
initialData:true, | |
content:ReactDomServer.renderToString(<appwithrouter />) | |
}); | |
}); | |
server.post(['/dashboard'],(req,res)=>{ | |
try { | |
const token = req.body.token; | |
jwt.verify(token,'secret',(err,result)=>{ | |
if (err) { | |
return res.json({ | |
message:'Auth Failed'+err, | |
status:false | |
}); | |
} | |
return res.json({ | |
message:'Authentication success', | |
status:true, | |
}); | |
}); | |
} catch (e) { | |
return res.status(401).json({ | |
message:'Auth Failed'+e, | |
}); | |
} | |
}); | |
server.post('/makelogin',(req,res)=>{ | |
InstituteModel.find({instituteEmail:req.body.instituteEmail,institutePassword:req.body.institutePassword}).exec((err,institutes)=>{ | |
if (err){ | |
res.send({status:false,error:err}); | |
}else { | |
if (institutes.length === 0) { | |
res.json({status:false}); | |
}else { | |
let token = { | |
email:institutes[0].instituteEmail, | |
instituteId:institutes[0]._id, | |
}; | |
jwt.sign(token, 'secret',(err,result)=>{ | |
if (err) { | |
return res.status(401).json({ | |
message:'Auth Failed'+e, | |
}); | |
} | |
res.json({status:true,token:result}); | |
}); | |
} | |
} | |
}); | |
}); | |
server.post('/instituteDoc', function(req, res) { | |
if (!req.files)return res.status(400).send('No files were uploaded.'); | |
let businessdoc = req.files.data; | |
let filename = new Date().getTime()+'_'+businessdoc.name; | |
let filepath = path.join(__dirname+'/../public/docs/'+filename); | |
businessdoc.mv(filepath, function(err) { | |
if (err){ | |
console.log(err); | |
return res.status(500).send(err); | |
} | |
res.send({'filepath':filename}); | |
}); | |
}); | |
server.post('/transactionSleep', function(req, res) { | |
if (!req.files)return res.status(400).send('No files were uploaded.'); | |
let transactionSleep = req.files.data; | |
let filename = new Date().getTime()+'_'+transactionSleep.name; | |
let filepath = path.join(__dirname+'/../public/paymentSleep/'+filename); | |
transactionSleep.mv(filepath, function(err) { | |
if (err){ | |
console.log(err); | |
return res.status(500).send(err); | |
} | |
res.send({'filepath':filename}); | |
}); | |
}); | |
server.post('/instituteLogo', function(req, res) { | |
if (!req.files)return res.status(400).send('No files were uploaded.'); | |
let institutionLogo = req.files.data; | |
let filename = new Date().getTime()+'_'+institutionLogo.name; | |
let filepath = path.join(__dirname+'/../public/docs/'+filename); | |
institutionLogo.mv(filepath, function(err) { | |
if (err){ | |
console.log(err); | |
return res.status(500).send(err); | |
} | |
res.send({'filepath':filename}); | |
}); | |
}); | |
server.post('/idProofDoc', function(req, res) { | |
if (!req.files)return res.status(400).send('No files were uploaded.'); | |
let idProofDoc = req.files.data; | |
let filename = new Date().getTime()+'_'+idProofDoc.name; | |
let filepath = path.join(__dirname+'/../public/idProof/'+filename); | |
idProofDoc.mv(filepath, function(err) { | |
if (err){ | |
console.log(err); | |
return res.status(500).send(err); | |
} | |
res.send({'filepath':filename}); | |
}); | |
}); | |
server.listen(server.get('port'),()=>console.log('listening at localhost:'+server.get('port'))); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment