Advertisement
Guest User

Untitled

a guest
Jan 6th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --tasks.js
  2.  
  3. router.get('/', async (req, res) => {
  4.   const task = await Task.find().sort('taskName');
  5.   res.send(task.filter(p => p.userID == req.cookies['userID']));
  6. });
  7.  
  8. -- auth.js
  9. router.post('/', async (req, res) => {
  10.     const { error } = validate(req.body);
  11.     if (error) return res.status(400).send(error.details[0].message);
  12.  
  13.     let user = await User.findOne({ email: req.body.email });
  14.     if(!user) return res.status(400).send('Invalid email or password.');
  15.  
  16.    const validPassword = await bcrypt.compare(req.body.password, user.password)
  17.    if(!validPassword) return res.status(400).send('Invalid email or password.');
  18.  
  19.    const token = user.generateAuthToken();
  20.    res.cookie("userID", req.body.email);
  21.    res.cookie('x-auth-token', token);
  22.    res.redirect("/");
  23. });
  24.  
  25.  
  26. router.get('/logout', async (req, res) => {
  27.   res.clearCookie("x-auth-token");
  28.   res.clearCookie("userID");
  29.   res.redirect("/");
  30. });
  31.  
  32. --taske.js
  33. $( document ).ready(async function() {
  34.     var tasks = [];
  35.     var  response = await fetch('http://localhost:3000/api/tasks');
  36.     $("#userID").val(getCookie("userID"));
  37.     var result = await response.json();
  38.     for(var i = 0; i < result.length; i++)
  39.     {
  40.         var stringParse = '<a href="#" onclick="editTask(' + '123' + ')">Edytuj</a>';
  41.         var row = $("<tr/>");
  42.         $("#taskTable").append(row);
  43.         row.append($("<td>" + result[i]._id + "</td>"));
  44.         row.append($("<td>" + result[i].taskName + "</td>"));
  45.         row.append($("<td>" + result[i].taskDescription + "</td>"));
  46.         stringParse = 'editTask(\'' + result[i]._id + '\',\'' + result[i].taskName + '\',\'' + result[i].taskDescription + '\')';
  47.         console.log('<td>' + '<a href="#" onclick="' + stringParse + ';">Edytuj</a>' + '</td>');
  48.         row.append('<td>' + '<a href="#" onclick="' + stringParse + '">Edytuj</a> | <a href="/api/tasks/delete/' + result[i]._id + '">Usuń</a>' + '</td>');
  49.     }
  50. });
  51.  
  52. --task.html
  53. <form id="myForm" action="http://localhost:3000/api/tasks/" method="post">
  54.     <input type="text" id="taskName" name="taskName" placeholder="Dodaj tytył">
  55.     <input type="text" id="taskDescription" name="taskDescription" placeholder="Dodaj zadanie">
  56.     <input type="hidden" id="userID" name="userID">
  57.     <button type="submit">Zapisz</button>
  58. </form>
  59.  
  60. --task.js {model}
  61.  
  62. const config = require('config');
  63. const Joi = require('joi');
  64. const mongoose = require('mongoose');
  65.  
  66. const taskSchema = new mongoose.Schema({
  67.     taskName: {
  68.       type: String,
  69.       required: true,
  70.       minlength: 5,
  71.       maxlength: 50
  72.     },
  73.     taskDescription: {
  74.         type: String,
  75.         required: true,
  76.         minlength: 5,
  77.         maxlength: 1024,
  78.       },
  79.       userID: {
  80.         type: String,
  81.         required: true,
  82.         minlength: 5,
  83.         maxlength: 1024,
  84.       },
  85.     isDone: Boolean
  86.   });
  87.  
  88. const Task = mongoose.model('Task', taskSchema);
  89.  
  90.  
  91. function validateTask(task) {
  92.   const schema = {
  93.     taskName: Joi.string().min(5).max(50).required(),
  94.     taskDescription: Joi.string().min(5).max(1024).required(),
  95.     userID: Joi.string().min(5).max(1024).required()
  96.   };
  97.  
  98.   return Joi.validate(task, schema);
  99. }
  100.  
  101. exports.Task = Task;
  102. exports.validate = validateTask;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement