Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --tasks.js
- router.get('/', async (req, res) => {
- const task = await Task.find().sort('taskName');
- res.send(task.filter(p => p.userID == req.cookies['userID']));
- });
- -- auth.js
- router.post('/', async (req, res) => {
- const { error } = validate(req.body);
- if (error) return res.status(400).send(error.details[0].message);
- let user = await User.findOne({ email: req.body.email });
- if(!user) return res.status(400).send('Invalid email or password.');
- const validPassword = await bcrypt.compare(req.body.password, user.password)
- if(!validPassword) return res.status(400).send('Invalid email or password.');
- const token = user.generateAuthToken();
- res.cookie("userID", req.body.email);
- res.cookie('x-auth-token', token);
- res.redirect("/");
- });
- router.get('/logout', async (req, res) => {
- res.clearCookie("x-auth-token");
- res.clearCookie("userID");
- res.redirect("/");
- });
- --taske.js
- $( document ).ready(async function() {
- var tasks = [];
- var response = await fetch('http://localhost:3000/api/tasks');
- $("#userID").val(getCookie("userID"));
- var result = await response.json();
- for(var i = 0; i < result.length; i++)
- {
- var stringParse = '<a href="#" onclick="editTask(' + '123' + ')">Edytuj</a>';
- var row = $("<tr/>");
- $("#taskTable").append(row);
- row.append($("<td>" + result[i]._id + "</td>"));
- row.append($("<td>" + result[i].taskName + "</td>"));
- row.append($("<td>" + result[i].taskDescription + "</td>"));
- stringParse = 'editTask(\'' + result[i]._id + '\',\'' + result[i].taskName + '\',\'' + result[i].taskDescription + '\')';
- console.log('<td>' + '<a href="#" onclick="' + stringParse + ';">Edytuj</a>' + '</td>');
- row.append('<td>' + '<a href="#" onclick="' + stringParse + '">Edytuj</a> | <a href="/api/tasks/delete/' + result[i]._id + '">Usuń</a>' + '</td>');
- }
- });
- --task.html
- <form id="myForm" action="http://localhost:3000/api/tasks/" method="post">
- <input type="text" id="taskName" name="taskName" placeholder="Dodaj tytył">
- <input type="text" id="taskDescription" name="taskDescription" placeholder="Dodaj zadanie">
- <input type="hidden" id="userID" name="userID">
- <button type="submit">Zapisz</button>
- </form>
- --task.js {model}
- const config = require('config');
- const Joi = require('joi');
- const mongoose = require('mongoose');
- const taskSchema = new mongoose.Schema({
- taskName: {
- type: String,
- required: true,
- minlength: 5,
- maxlength: 50
- },
- taskDescription: {
- type: String,
- required: true,
- minlength: 5,
- maxlength: 1024,
- },
- userID: {
- type: String,
- required: true,
- minlength: 5,
- maxlength: 1024,
- },
- isDone: Boolean
- });
- const Task = mongoose.model('Task', taskSchema);
- function validateTask(task) {
- const schema = {
- taskName: Joi.string().min(5).max(50).required(),
- taskDescription: Joi.string().min(5).max(1024).required(),
- userID: Joi.string().min(5).max(1024).required()
- };
- return Joi.validate(task, schema);
- }
- exports.Task = Task;
- exports.validate = validateTask;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement