Guest User

Untitled

a guest
Aug 26th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. const mongoose = require('mongoose');
  2. mongoose.connect('mongodb://localhost/test');
  3. const db = mongoose.connection;
  4.  
  5. db.once('err', () => {
  6. console.log(err);
  7. });
  8.  
  9. db.once('open', () => {
  10. console.log('DB connected');
  11. });
  12.  
  13. const UserSchema = mongoose.Schema({
  14. user_id: String,
  15. password: String
  16. });
  17.  
  18. const User = mongoose.model('user', UserSchema);
  19. const app = require('express')();
  20. const session = require('express-session');
  21. const MongoStore = require('connect-mongo')(session);
  22. const bodyParser = require('body-parser');
  23. const url = require('url');
  24.  
  25. app.set('view engine', 'ejs');
  26. app.set('views', 'views');
  27. app.use(bodyParser.urlencoded({ extended: false }));
  28. app.use(session({
  29. secret: 'keyboard cat',
  30. resave: false,
  31. saveUninitialized: true,
  32. store: new MongoStore({
  33. url: "mongodb://localhost/test",
  34. collection: "sessions"
  35. })
  36. }));
  37.  
  38.  
  39. app.get('/', (req, res) => {
  40. if(req.session.logined) {
  41. res.render('logout', { id: req.session.user_id });
  42. } else {
  43. res.render('login');
  44. }
  45. });
  46.  
  47. app.get('/register', (req, res) => {
  48. res.render('register');
  49. });
  50.  
  51. app.post('/register', (req, res) => {
  52. let uid = req.body.user_id;
  53. let upwd = req.body.password;
  54. duplicate(req, res, uid, upwd);
  55. });
  56.  
  57. app.post('/', (req, res) => {
  58. let uid = req.body.user_id;
  59. let upwd = req.body.password;
  60. duplicate(req, res, uid, upwd);
  61. });
  62.  
  63. app.post('/logout', (req, res) => {
  64. req.session.destroy();
  65. res.redirect('/');
  66. });
  67.  
  68. app.listen(3000, () => {
  69. console.log('listening 3000port');
  70. });
  71.  
  72. function duplicate(req, res, uid, upwd) {
  73. let parseUrl = url.parse(req.url);
  74. let resource = parseUrl.pathname;
  75. if(resource == '/register') {
  76. User.findOne({ "user_id": uid }, (err, user) => {
  77. if(err) return res.json(err);
  78.  
  79. if(user) {
  80. console.log('user id duplicate');
  81. res.send(`
  82. <a href="/">Back</a>
  83. <h1>User id duplicate</h1>
  84. `);
  85. } else {
  86. User.create({ "user_id": uid, "password": upwd }, (err) => {
  87. if(err) return res.json(err);
  88. console.log('Success');
  89. res.redirect('/');
  90. })
  91. }
  92. })
  93. } else {
  94. User.findOne({ "user_id": uid }, (err, user) => {
  95. if(err) return res.json(err);
  96.  
  97. if(user) {
  98. User.findOne({ "password": upwd })
  99. .exec((err, user) => {
  100. if(err) return res.json(err);
  101.  
  102. if(!user) {
  103. console.log('different password');
  104. res.send(`
  105. <a href="/">Back</a>
  106. <h1>Cannot find user</h1>
  107. `);
  108. } else {
  109. console.log('Welcome');
  110. req.session.user_id = uid;
  111. req.session.logined = true;
  112. res.redirect('/');
  113. }
  114. })
  115. } else {
  116. console.log('Cannot find user');
  117. res.send(`
  118. <a href="/">Back</a>
  119. <h1>Cannot find user</h1>
  120. `);
  121. }
  122. })
  123. }
  124. }
Add Comment
Please, Sign In to add comment