Created
November 20, 2021 11:02
-
-
Save dietergoetelen/a930ef37d68ee4d5b8435f91dd55d234 to your computer and use it in GitHub Desktop.
starwars
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[{ | |
"name": "Luke Skywalker", | |
"height": "172", | |
"gender": "male" | |
}, { | |
"name": "C-3PO", | |
"height": "167", | |
"gender": "n/a" | |
}, { | |
"name": "R2-D2", | |
"height": "96", | |
"gender": "n/a" | |
}, { | |
"name": "Darth Vader", | |
"height": "202", | |
"gender": "male" | |
}, { | |
"name": "Leia Organa", | |
"height": "150", | |
"gender": "female" | |
}, { | |
"name": "Owen Lars", | |
"height": "178", | |
"gender": "male" | |
}, { | |
"name": "Beru Whitesun lars", | |
"height": "165", | |
"gender": "female" | |
}, { | |
"name": "R5-D4", | |
"height": "97", | |
"gender": "n/a" | |
}, { | |
"name": "Biggs Darklighter", | |
"height": "183", | |
"gender": "male" | |
}, { | |
"name": "Obi-Wan Kenobi", | |
"height": "182", | |
"gender": "male" | |
}] |
const express = require('express');
const app = express();
const router = express.Router();
app.use(express.json());
app.use(router);
const people = [{
"name": "Luke Skywalker",
"height": "172",
"gender": "male"
}, {
"name": "C-3PO",
"height": "167",
"gender": "n/a"
}, {
"name": "R2-D2",
"height": "96",
"gender": "n/a"
}, {
"name": "Darth Vader",
"height": "202",
"gender": "male"
}, {
"name": "Leia Organa",
"height": "150",
"gender": "female"
}, {
"name": "Owen Lars",
"height": "178",
"gender": "male"
}, {
"name": "Beru Whitesun lars",
"height": "165",
"gender": "female"
}, {
"name": "R5-D4",
"height": "97",
"gender": "n/a"
}, {
"name": "Biggs Darklighter",
"height": "183",
"gender": "male"
}, {
"name": "Obi-Wan Kenobi",
"height": "182",
"gender": "male"
}]
function index(req, res) {
res.json(people)
}
function byId(req, res) {
const id = Number(req.params.id);
if (isNaN(id)) {
res.status(401);
return res.end();
}
const person = people[id]
if (person === undefined) {
res.status(404);
return res.end();
}
res.json(person);
}
function create(req, res) {
const person = req.body;
if (person.name === undefined) {
res.status(400);
return res.end();
}
if (person.height === undefined) {
res.status(400);
return res.end();
}
if (person.gender === undefined) {
res.status(400);
return res.end();
}
if (people.find(p => p.name === person.name)) {
res.status(409);
return res.end();
}
people.push(person);
res.status(201);
res.json(person)
}
router.get('/api/people', index);
router.post('/api/people', create)
router.get('/api/people/:id', byId);
app.listen(3000, () => {
console.log('server listening on port 3000')
})
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Extra