Skip to content

Instantly share code, notes, and snippets.

@rizwan92
Created May 28, 2018 09:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rizwan92/d55f4768f8893b8308331434b336e1bf to your computer and use it in GitHub Desktop.
Save rizwan92/d55f4768f8893b8308331434b336e1bf to your computer and use it in GitHub Desktop.
my server.js file
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