You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.0 KiB
JavaScript
85 lines
2.0 KiB
JavaScript
12 months ago
|
const http = require('http');
|
||
|
|
||
|
const directory = [{
|
||
|
"name": "Brandon",
|
||
|
"email": "brandon@mail.com"
|
||
|
},
|
||
|
{
|
||
|
"name": "Jobert",
|
||
|
"email": "jobert@mail.com"
|
||
|
}
|
||
|
]
|
||
|
|
||
|
const port = 4000;
|
||
|
|
||
|
const http = require('http');
|
||
|
|
||
|
// Mock Database
|
||
|
let directory = [
|
||
|
{
|
||
|
"name": "Brandon",
|
||
|
"email": "brandon@mail.com"
|
||
|
},
|
||
|
{
|
||
|
"name": "Jobert",
|
||
|
"email": "jobert@mail.com"
|
||
|
}
|
||
|
]
|
||
|
|
||
|
let port = 4000;
|
||
|
|
||
|
let app = http.createServer(function(request, response){
|
||
|
|
||
|
// Route for returning all items upon receiving a GET request
|
||
|
if(request.url == "/users" && request.method == "GET"){
|
||
|
|
||
|
// Sets the status code to 200 and sets response output to JSON data type
|
||
|
response.writeHead(200, {'Content-Type': 'application/json'});
|
||
|
|
||
|
// using write() method of the response object to send a response to the client in a JSON format
|
||
|
// JSON.stringify() method converts the JavaScript array of objects into JSON string.
|
||
|
response.write(JSON.stringify(directory));
|
||
|
|
||
|
// Ends our response process
|
||
|
response.end();
|
||
|
}
|
||
|
|
||
|
// Route for creating a new item upon receiving a post request
|
||
|
/*
|
||
|
A request object contains several parts:
|
||
|
- Headers - contains information about the request context/content
|
||
|
- Body - contains the actual information being sent with the request
|
||
|
*/
|
||
|
if(request.url == "/users" && request.method == "POST"){
|
||
|
|
||
|
let requestBody = '';
|
||
|
|
||
|
// Data is received from the client and is processed in the "data" stream
|
||
|
request.on('data', function(data){
|
||
|
requestBody += data;
|
||
|
});
|
||
|
|
||
|
// request end step - only runs after the request has completely been started
|
||
|
request.on('end', function(){
|
||
|
|
||
|
console.log(typeof requestBody);
|
||
|
|
||
|
requestBody = JSON.parse(requestBody);
|
||
|
|
||
|
let newUser = {
|
||
|
"name": requestBody.name,
|
||
|
"email": requestBody.email
|
||
|
}
|
||
|
|
||
|
directory.push(newUser);
|
||
|
console.log(directory);
|
||
|
|
||
|
response.writeHead(200, {'Content-Type': 'application/json'});
|
||
|
response.write(JSON.stringify(newUser));
|
||
|
response.end();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
});
|
||
|
|
||
|
app.listen(port, () => console.log(`Server running at localhost:${4000}`));
|