Guest User

Untitled

a guest
Nov 7th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.13 KB | None | 0 0
  1. var debug = require('debug');
  2. var express = require('express');
  3. var fs = require('fs');
  4. var path = require('path');
  5. var favicon = require('serve-favicon');
  6. var logger = require('morgan');
  7. var cookieParser = require('cookie-parser');
  8. var bodyParser = require('body-parser');
  9. var exphbs = require('express-handlebars')
  10.  
  11. ...
  12. ...
  13.  
  14. // view engine setup
  15. app.set('views', path.join(__dirname, 'views'));
  16. app.engine('hbs', exphbs({ extname: '.hbs', defaultLayout: 'layout' }));
  17. app.set('view engine', 'hbs');
  18.  
  19. app.use(favicon(__dirname + '/public/favicon.ico'));
  20. app.use(logger('dev'));
  21. app.use(bodyParser.json());
  22. app.use(bodyParser.urlencoded({ extended: false }));
  23. app.use(cookieParser());
  24. app.use(express.static(path.join(__dirname, 'public')));
  25. app.use(session({
  26. secret: 'gh jewellery',
  27. resave: false,
  28. saveUninitialized: false,
  29. cookie: { secure: false }
  30.  
  31.  
  32. }));
  33.  
  34.  
  35. app.use(function (req, res, next) {
  36. console.log('middleware was called');
  37. res.locals.session = req.session;
  38. req.session.LoggedIn = false;
  39.  
  40. next();
  41. });
  42.  
  43. <!doctype html>
  44. <html lang="en">
  45. <head>
  46. ...
  47.  
  48. <title></title>
  49. </head>
  50. <body>
  51. <nav class="navbar navbar-expand navbar-light bg-light sticky-top">
  52. <a class="navbar-brand" id="cus" href="/" style="font-size:12px;"></a>
  53.  
  54. {{#if session.loggedIn}}
  55.  
  56. <div class="collapse navbar-collapse" id="navbarNavDropdown">
  57. <ul class="navbar-nav ml-auto">
  58.  
  59. <li class="nav-item dropdown ">
  60. <a class="nav-link" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  61. <i class="far fa-bell fa-lg" style="color:darkblue;"></i><span class="label label-info"> {{session.user.notification.counter}}</span>
  62. </a>
  63.  
  64.  
  65. <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">
  66. {{#each session.user.notification.notidata}}
  67. <div class="dropdown-item" href="#">
  68. <div>
  69. <h6>{{data.heading}}</h6>
  70. <small>{{data.para}}</small>
  71.  
  72. <small class="text-muted">{{notidate}}</small>
  73. <a style="float:right; font-size:8px;" href="#" class="badge badge-secondary">Mark As Read</a>
  74.  
  75. </div>
  76. </div>
  77. <div class="dropdown-divider"></div>
  78. {{/each}}
  79. <form action="/logout" method="post">
  80. <button class="btn btn-light btn-block logoutbutton" type="submit">View All Notifications</button>
  81. </form>
  82. </div>
  83. </li>
  84. <li class="nav-item dropdown ">
  85. <a class="nav-link" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  86. <i class="far fa-envelope fa-lg" style="color:darkblue;"></i><span class="label label-info"> {{session.user.message.counter}}</span>
  87. </a>
  88.  
  89.  
  90. <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">
  91. <a class="dropdown-item" href="#">
  92. <div>
  93. <h6>Heading</h6>
  94. <small>This is the paragramgh look pretty cool to me if you ask!</small>
  95. </div>
  96. </a>
  97. <div class="dropdown-divider"></div>
  98. <form action="/logout" method="post">
  99. <button class="btn btn-light btn-block logoutbutton" type="submit">View All Messages</button>
  100. </form>
  101. </div>
  102.  
  103. </li>
  104. <li class="nav-item dropdown ">
  105. <a class="nav-link " href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  106. <i class="fas fa-user-circle fa-lg" style="color:darkblue;"> {{session.user.username}}</i>
  107. </a>
  108. <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">
  109. <a class="dropdown-item" href="/profile/{{session.user._id}}">Profile</a>
  110. <div class="dropdown-divider"></div>
  111. <a class="dropdown-item" href="/adreqform">Post an Order</a>
  112. <div class="dropdown-divider"></div>
  113. <a class="dropdown-item" href="/managereq">Manage Order Requests</a>
  114. <div class="dropdown-divider"></div>
  115. <form action="/logout" method="post">
  116. <button class="btn btn-light btn-block logoutbutton" type="submit">Logout</button>
  117. </form>
  118. </div>
  119. </li>
  120. </ul>
  121.  
  122. {{/if}}
  123. {{#unless session.loggedIn}}
  124. <div class="navbar-text ml-auto">
  125. Hello! <a href="/signup" style="color:darkblue">Sign up</a> or <a href="/login" style="color:darkblue">Login</a>
  126. </div>
  127.  
  128. {{/unless}}
  129. </div>
  130.  
  131. </nav>
  132. <div class="container-fluid">
  133. <div class="row">
  134. <div class="col-md-2">
  135.  
  136. </div>
  137.  
  138. <div class="col-md-7">
  139. {{{body}}}
  140. </div>
  141.  
  142. <div class="col-md-3">
  143. <div class="w-100 ">
  144. <br />
  145.  
  146. <div class="card">
  147. <div class="card-body">
  148. <h5 class="card-title">Special title treatment</h5>
  149. <hr>
  150. <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
  151. <a href="#" class="btn btn-primary">Go somewhere</a>
  152. </div>
  153. </div>
  154. </div>
  155.  
  156. <div class="w-100">
  157. <br />
  158.  
  159. <div class="card">
  160. <div class="card-body">
  161. <h5 class="card-title">Special title treatment</h5>
  162. <hr>
  163. <p class="card-text">With supporting text below as a natural lead-in to additional content.</p>
  164. <a href="#" class="btn btn-primary">Go somewhere</a>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171.  
  172.  
  173.  
  174. <!--<script>
  175. $(document).ready(function () {
  176. $(".dropdown-toggle").dropdown();
  177. });
  178. </script>-->
  179. </body>
  180. </html>
  181.  
  182. var mongoose = require('mongoose');
  183. var Schema = mongoose.Schema;
  184.  
  185.  
  186. var UserSchema = new Schema({
  187.  
  188. username: String,
  189. email: String,
  190. password: String,
  191. company: String,
  192. contact: Number,
  193. country: String,
  194. isLoggedIn: Boolean,
  195. createdOn: { type: Date, default: Date.now },
  196. ads: [{ type: Schema.Types.ObjectId, ref: 'Ad' }],
  197. notification: {
  198. counter: Number,
  199. notidata: [{
  200. notiId: Schema.Types.ObjectId,
  201. notidate: { type: Date, default: Date.now },
  202. data: {
  203. heading: String,
  204. para: String
  205. },
  206. notistatus: {type: Boolean, default: false}
  207. }]
  208. }
  209.  
  210. });
  211.  
  212.  
  213. var User = module.exports = mongoose.model('User', UserSchema);
  214.  
  215. var user3 = {
  216. username: req.body.username,
  217. email: req.body.email,
  218. password: req.body.password,
  219. country: req.body.country
  220.  
  221.  
  222. };
  223.  
  224. var newuser = new User(user3);
  225. newuser.save(function (err, newuser) {
  226. if (err) {
  227. console.log(err);
  228.  
  229. }
  230. req.session.user = newuser;
  231. req.session.loggedIn = true;
  232. req.session.save();
  233.  
  234. req.session.user = newuser;
Add Comment
Please, Sign In to add comment