cd ..
root@paste:~/hruPVd5bV9$cat paste
paste://hruPVd5bV9PUBLIC
public paste

hruPVd5bV9

—9 views3,341 chars3.26 KB

stdout

Paste content

>_javascriptauto-detected
const express = require('express'); 
const cors = require('cors'); 
 
const app = express(); 
 
let tasks = []; 
let currentId = 1; 
 
app.use(cors()); 
app.use(express.json()); 
app.use(express.static('public')); 
// Get all tasks 
app.get('/api/tasks', (req, res) => { 
    res.json(tasks); 
}); 
 
// Create task 
app.post('/api/tasks', (req, res) => { 
    const task = { 
        id: currentId++, 
        title: req.body.title 
    }; 
 
    tasks.push(task); 
    res.status(201).json(task); 
}); 
 
// Update task 
app.put('/api/tasks/:id', (req, res) => { 
 
    const id = parseInt(req.params.id); 
 
    const task = tasks.find(t => t.id === id); 
 
    if (!task) { 
        return res.status(404).json({ 
            message: "Task not found" 
        }); 
    } 
 
    task.title = req.body.title; 
 
    res.json(task); 
}); 
// Delete task 
app.delete('/api/tasks/:id', (req, res) => { 
 
    const id = parseInt(req.params.id); 
 
    tasks = tasks.filter(t => t.id !== id); 
 
    res.status(204).send(); 
}); 
 
// Server 
const PORT = 3000; 
 
app.listen(PORT, () => { 
    console.log(`Server running at http://localhost:${PORT}`); 
}); 














const taskForm = document.getElementById("task-form"); 
 
const taskInput = document.getElementById("task-input"); 
 
const taskList = document.getElementById("task-list"); 
 
const API_URL = "/api/tasks"; 
 
// Read Tasks 
async function fetchTasks(){ 
 
    const res = await fetch(API_URL); 
 
    const tasks = await res.json(); 
 
    taskList.innerHTML = ""; 
 
    tasks.forEach(addTaskToDOM); 
} 
 
// Display Task 
function addTaskToDOM(task){ 
 
    const li = document.createElement("li"); 
 
    li.textContent = task.title + " "; 
 
    // Edit Button 
    const editBtn = document.createElement("button"); 
 
    editBtn.textContent = "Edit"; 
 
    editBtn.onclick = async ()=>{ 
 
        const newTitle = prompt("Edit Task",task.title); 
 
        if(newTitle){ 
 
            await fetch(`${API_URL}/${task.id}`,{ 
 
                method:"PUT", 
 
                headers:{ 
                    "Content-Type":"application/json" 
                }, 
 
                body:JSON.stringify({ 
                    title:newTitle 
                }) 
 
            }); 
 
            fetchTasks(); 
 
        } 
 
    }; 
 
    // Delete Button 
    const deleteBtn = document.createElement("button"); 
 
    deleteBtn.textContent = "Delete"; 
 
    deleteBtn.onclick = async()=>{ 
 
        await fetch(`${API_URL}/${task.id}`,{ 
 
            method:"DELETE" 
 
        }); 
 
        fetchTasks(); 
 
    }; 
 
    li.appendChild(editBtn); 
 
    li.appendChild(deleteBtn); 
 
    taskList.appendChild(li); 
 
} 
 
// Add Task 
taskForm.onsubmit = async(e)=>{ 
 
    e.preventDefault(); 
 
    const title = taskInput.value.trim(); 
 
    if(title==="") return; 
 await fetch(API_URL,{ 
 
        method:"POST", 
 
        headers:{ 
            "Content-Type":"application/json" 
        }, 
 
        body:JSON.stringify({ 
            title:title 
        }) 
 
    }); 
 
    taskInput.value=""; 
 
    fetchTasks(); 
 
}; 
 
// Load Tasks 
fetchTasks(); 

$ tail -f comments.log

Comments [1]

AAnonymous—

notes