Advertisement
Guest User

Untitled

a guest
Mar 29th, 2018
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.65 KB | None | 0 0
  1. //Tools
  2. var express = require("express"),
  3. app = express(),
  4. bodyParser = require("body-parser"),
  5. mongoose = require("mongoose"),
  6. flash = require("connect-flash"),
  7. passport = require("passport"),
  8. LocalStrategy = require("passport-local"),
  9. methodOverride = require("method-override"),
  10. //Schemas
  11. User = require("./models/user"),
  12. Member = require("./models/memberstuff");
  13. //Uploading Files Stuff
  14. var path = require("path"),
  15. multer = require ("multer"),
  16. GridFsStorage = require('multer-gridfs-storage'),
  17. Grid = require('gridfs-stream'),
  18. crypto = require('crypto');
  19.  
  20. // var admin = {username: "Admin",password: "thebestadmin"}; Admin Info
  21. //requiring routes
  22. // var uploadingimages = require("./routes/uploadimages");
  23.  
  24. // app.use(uploadingimages);
  25.  
  26. var mongoURI = 'mongodb://user:password@ds233748.mlab.com:33748/ubercareemform'
  27. // Setup multer storage info
  28. const storage = new GridFsStorage({
  29. url: mongoURI,
  30. file: (req, file) => {
  31. return new Promise((resolve, reject) => {
  32. crypto.randomBytes(16, (err, buf) => {
  33. if (err) {
  34. return reject(err);
  35. }
  36. const filename = User.username + file.fieldname + Date.now() + path.extname(file.originalname);
  37. const fileInfo = {
  38. filename: filename,
  39. bucketName: 'uploads'
  40. };
  41. resolve(fileInfo);
  42. });
  43. });
  44. }
  45. });
  46.  
  47. const upload = multer({ storage });
  48.  
  49.  
  50. //Some Humble Stuff
  51. app.use(bodyParser.urlencoded({extended: true}));
  52. app.set("view engine", "ejs");
  53. // app.use(express.static(__dirname + "/public"));
  54. app.use(methodOverride("_method"));
  55. // app.use(flash());
  56. mongoose.connect(mongoURI);
  57.  
  58. // PASSPORT CONFIGURATION
  59. app.use(require("express-session")({
  60. secret: "Iron Stone the worst developer ever",
  61. resave: false,
  62. saveUninitialized: false
  63. }));
  64. app.use(passport.initialize());
  65. app.use(passport.session());
  66. passport.use(new LocalStrategy(User.authenticate()));
  67. passport.serializeUser(User.serializeUser());
  68. passport.deserializeUser(User.deserializeUser());
  69.  
  70. app.use(function(req, res, next){
  71. res.locals.currentUser = req.user;
  72. next();
  73. });
  74.  
  75. // Routes
  76.  
  77. app.post('/uploadmember/:user',isLoggedIn ,upload.single('identity'), (req, res) => {
  78. res.json({ file: req.file });
  79. // res.redirect('/');
  80.  
  81.  
  82. });
  83.  
  84. app.get("/", function(req, res){
  85. res.render("home")
  86. });
  87.  
  88. app.get("/admin",isAdmin,function(req, res){
  89. res.render("admin")
  90. });
  91.  
  92.  
  93. app.post("/admin/new/member", function(req, res){
  94. res.send("New Member post Route") ;
  95. });
  96.  
  97. app.get("/member/:id", function(req, res) {
  98. //Find The user by id
  99. User.findById(req.params.id, function (err, user) {
  100. if(err){
  101. console.log(err);
  102. } else {
  103. res.render("memberupload", {member: user});
  104. }
  105.  
  106. });
  107.  
  108. });
  109.  
  110. //Uploading Image Routes
  111. app.post("/uploadmember/:memberid", function(req, res){
  112. res.send(req.params.memberid);
  113.  
  114. });
  115.  
  116. app.post("/member/signin", function(req, res){
  117. res.redirect("memberupload");
  118. });
  119.  
  120. //End Here
  121.  
  122. // var admin = {username: "Admin",password: "thebestadmin"}; Admin Info
  123. app.post("/register", function(req, res){
  124. var newUser = new User({username: req.body.username});
  125. User.register(newUser, req.body.password, function(err, user){
  126. if(err){
  127. console.log(err);
  128. // return res.render("register");
  129. }
  130. res.redirect("/admin")
  131. });
  132. });
  133. // Login
  134. app.post('/login',
  135. passport.authenticate('local', { failureRedirect: '/' }),
  136. function(req, res) {
  137. console.log(req.user);
  138. res.redirect("/member/" + req.user._id);
  139. });
  140.  
  141.  
  142. // MiddleWares
  143. function isLoggedIn (req, res, next){
  144. if(req.isAuthenticated()){
  145.  
  146. next();
  147. }
  148. // req.flash("error", "You need to be logged in to do that");
  149. res.redirect("/");
  150. }
  151.  
  152. function isAdmin (req, res, next){
  153. if(req.isAuthenticated()){
  154. console.log(req.user.username)
  155. if (req.user.username == "admin")
  156. next()
  157. } else{
  158. console.log("You are not admin yet")
  159. res.redirect("/");
  160. }
  161.  
  162. }
  163.  
  164.  
  165. //Starting Setup
  166.  
  167.  
  168. app.listen(process.env.PORT, process.env.IP, function(){
  169. console.log("The Server Has Started!");
  170. // console.log();
  171. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement