From 2c46000979b2c9906c5066821c43ddf0ae7ff090 Mon Sep 17 00:00:00 2001 From: Daniel Andreas Wang Date: Thu, 12 Mar 2026 19:01:51 +0100 Subject: set up news fetching --- server/index.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 server/index.js (limited to 'server/index.js') diff --git a/server/index.js b/server/index.js new file mode 100644 index 0000000..1a0fdf1 --- /dev/null +++ b/server/index.js @@ -0,0 +1,29 @@ +import 'dotenv/config' +import express from 'express' + +const app = express() +const PORT = 3000 +const API_KEY = process.env.NEWS_API_KEY +const BASE_URL = 'https://newsapi.org/v2' + +async function proxyNewsApi(path, query, res) { + if (!API_KEY) { + return res.status(500).json({ error: 'NEWS_API_KEY is not set' }) + } + const params = new URLSearchParams({ ...query, apiKey: API_KEY }) + const response = await fetch(`${BASE_URL}${path}?${params}`) + const data = await response.json() + res.status(response.status).json(data) +} + +app.get('/api/top-headlines', async (req, res) => { + await proxyNewsApi('/top-headlines', req.query, res) +}) + +app.get('/api/everything', async (req, res) => { + await proxyNewsApi('/everything', req.query, res) +}) + +app.listen(PORT, () => { + console.log(`Server running on http://localhost:${PORT}`) +}) -- cgit