Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Tools
- var express = require("express"),
- app = express(),
- bodyParser = require("body-parser"),
- mongoose = require("mongoose"),
- flash = require("connect-flash"),
- passport = require("passport"),
- LocalStrategy = require("passport-local"),
- methodOverride = require("method-override"),
- //Schemas
- User = require("./models/user"),
- Member = require("./models/memberstuff");
- //Uploading Files Stuff
- var path = require("path"),
- multer = require ("multer"),
- GridFsStorage = require('multer-gridfs-storage'),
- Grid = require('gridfs-stream'),
- crypto = require('crypto');
- // var admin = {username: "Admin",password: "thebestadmin"}; Admin Info
- //requiring routes
- // var uploadingimages = require("./routes/uploadimages");
- // app.use(uploadingimages);
- var mongoURI = 'mongodb://user:password@ds233748.mlab.com:33748/ubercareemform'
- // Setup multer storage info
- const storage = new GridFsStorage({
- url: mongoURI,
- file: (req, file) => {
- return new Promise((resolve, reject) => {
- crypto.randomBytes(16, (err, buf) => {
- if (err) {
- return reject(err);
- }
- const filename = User.username + file.fieldname + Date.now() + path.extname(file.originalname);
- const fileInfo = {
- filename: filename,
- bucketName: 'uploads'
- };
- resolve(fileInfo);
- });
- });
- }
- });
- const upload = multer({ storage });
- //Some Humble Stuff
- app.use(bodyParser.urlencoded({extended: true}));
- app.set("view engine", "ejs");
- // app.use(express.static(__dirname + "/public"));
- app.use(methodOverride("_method"));
- // app.use(flash());
- mongoose.connect(mongoURI);
- // PASSPORT CONFIGURATION
- app.use(require("express-session")({
- secret: "Iron Stone the worst developer ever",
- resave: false,
- saveUninitialized: false
- }));
- app.use(passport.initialize());
- app.use(passport.session());
- passport.use(new LocalStrategy(User.authenticate()));
- passport.serializeUser(User.serializeUser());
- passport.deserializeUser(User.deserializeUser());
- app.use(function(req, res, next){
- res.locals.currentUser = req.user;
- next();
- });
- // Routes
- app.post('/uploadmember/:user',isLoggedIn ,upload.single('identity'), (req, res) => {
- res.json({ file: req.file });
- // res.redirect('/');
- });
- app.get("/", function(req, res){
- res.render("home")
- });
- app.get("/admin",isAdmin,function(req, res){
- res.render("admin")
- });
- app.post("/admin/new/member", function(req, res){
- res.send("New Member post Route") ;
- });
- app.get("/member/:id", function(req, res) {
- //Find The user by id
- User.findById(req.params.id, function (err, user) {
- if(err){
- console.log(err);
- } else {
- res.render("memberupload", {member: user});
- }
- });
- });
- //Uploading Image Routes
- app.post("/uploadmember/:memberid", function(req, res){
- res.send(req.params.memberid);
- });
- app.post("/member/signin", function(req, res){
- res.redirect("memberupload");
- });
- //End Here
- // var admin = {username: "Admin",password: "thebestadmin"}; Admin Info
- app.post("/register", function(req, res){
- var newUser = new User({username: req.body.username});
- User.register(newUser, req.body.password, function(err, user){
- if(err){
- console.log(err);
- // return res.render("register");
- }
- res.redirect("/admin")
- });
- });
- // Login
- app.post('/login',
- passport.authenticate('local', { failureRedirect: '/' }),
- function(req, res) {
- console.log(req.user);
- res.redirect("/member/" + req.user._id);
- });
- // MiddleWares
- function isLoggedIn (req, res, next){
- if(req.isAuthenticated()){
- next();
- }
- // req.flash("error", "You need to be logged in to do that");
- res.redirect("/");
- }
- function isAdmin (req, res, next){
- if(req.isAuthenticated()){
- console.log(req.user.username)
- if (req.user.username == "admin")
- next()
- } else{
- console.log("You are not admin yet")
- res.redirect("/");
- }
- }
- //Starting Setup
- app.listen(process.env.PORT, process.env.IP, function(){
- console.log("The Server Has Started!");
- // console.log();
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement