Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions quote-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@
"type": "module",
"main": "server.js",
"scripts": {
"start": "node --no-warnings=ExperimentalWarning server.js"
"start": "nodemon server.js"
},
"license": "MIT",
"keywords": [
"node",
"glitch",
"express"
]
],
"dependencies": {
"express": "^4.19.2",
"node-fetch": "^3.3.2",
"nodemon": "^3.1.0"
}
}
40 changes: 39 additions & 1 deletion quote-server/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,54 @@

//load the 'express' module which makes writing webservers easy
import express from "express";
import fetch from "node-fetch";
//load the quotes JSON
import quotes from "./quotes.json" assert { type: "json" };
// import quotes from "./quotes.json" assert { type: "json" };
let quotes = [];

const fetchQuotes = async () => {
try {
const quotesApi = await fetch("https://api.quotable.io/quotes?page=1");
const quotesData = await quotesApi.json();
quotes = quotesData.results;
} catch (error) {
console.error("Error fetching quotes:", error);
}
};
fetchQuotes();
const app = express();
// Now register handlers for some routes:
// / - Return some helpful welcome info (text)
// /quotes - Should return all quotes (json)
// /quotes/random - Should return ONE quote (json)

app.get("/", (request, response) => {
response.send("Neill's Quote Server! Ask me for /quotes/random, or /quotes");
});
app.get("/quotes", (request, response) => {
response.send({ quotes });
console.log(request.query);
});
app.get("/quotes/random", (request, response) => {
response.send(pickFromArray(quotes));
});
app.get("/quotes/search", (request, response) => {
const searchQuery = request.query.term;
console.log(searchQuery);
const searchQueryCase = searchQuery.toLocaleLowerCase();
console.log(searchQuery);

const filteredQuotes = quotes.filter((quote) => {
// console.log(quote.author);
return (
quote.content.toLocaleLowerCase().includes(searchQueryCase) ||
quote.author.toLocaleLowerCase().includes(searchQueryCase)
);
});

response.send(filteredQuotes);
});


//START OF YOUR CODE...

Expand All @@ -26,6 +63,7 @@ app.get("/", (request, response) => {
const pickFromArray = (arrayofQuotes) =>
arrayofQuotes[Math.floor(Math.random() * arrayofQuotes.length)];


//Start our server so that it listens for HTTP requests!
const listener = app.listen(3001, () => {
console.log("Your app is listening on port " + listener.address().port);
Expand Down