fcc-boilerplate-express/scripts/names.js

41 lines
1 KiB
JavaScript

let express = require('express'); require('dotenv').config(); let app = express();
const bodyParser = require(`body-parser`);
class ServerForNames {
#paths = {
"API": {
"name": "/name"
}
}
/* Echo.
PARAMETERS (object): The name parameters.
returns: (object) the formatted repeat response
*/
parse(PARAMETERS) {
let RESPONSE = {"name": [PARAMETERS["first"], PARAMETERS["last"]].join(` `)};
return (RESPONSE);
}
/* Create the response.
REQUEST (object): The request object.
RESPONSE (object): The response object.
*/
respond(REQUEST, RESPONSE) {
RESPONSE.json(this.parse(REQUEST.query));
}
constructor() {
app.use(bodyParser.urlencoded({extended: false}));
[`get`, `post`].forEach((METHOD) => {
app.route(this.#paths[`API`][`name`])[METHOD]((REQUEST, RESPONSE, next) => {this.respond(REQUEST, RESPONSE);});
});
}
}
new ServerForNames();
module.exports = app;