diff --git a/README.md b/README.md index 5436080..cd2aa74 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ Feel free to take a look. You might learn new things. They have been designed to #### Javascript - [Adonis.js](backend/adonis.js) +- [Express.js](backend/express.js) - [Feathers.js](backend/feathers.js) - [Moleculer](backend/moleculer.js) - [Node.js](backend/node.js) diff --git a/backend/express.js b/backend/express.js new file mode 100644 index 0000000..d919bfb --- /dev/null +++ b/backend/express.js @@ -0,0 +1,226 @@ +/* ******************************************************************************************* + * API + * http://expressjs.com/en/api.html + * ******************************************************************************************* */ +`npm i express --save` or`yarn add -D express``(-D saves it as a dev dependency)` +`yarn add -D @types/express``(Installing for TS)` + +const express = require("express"); // Importing the express library. +const app = express(); // Intializing the imported express application + +/* ******************************************************************************************* + * GLOBAL OBJECTS + * http://expressjs.com/en/api.html#express.json + * ******************************************************************************************* */ + +```Methods```; + +`express.json([options]);` + +options: ` +inflate // to manage the deflated bodies like enabling and disabling + +limit // Controls the maximum request body size. + +reviver // It is passed directly to JSON.parse as an second argument + +type // This is used to determine the type of middleware will parse + +verify // It is an undefined function which used to verify the middleware parsing. + +`; + +`express.raw([options]);` + +options: ` +inflate // to manage the deflated bodies like enabling and disabling + +limit // Controls the maximum request body size. + +type // This is used to determine the type of middleware will parse + +verify // It is an undefined function which used to verify the middleware parsing. +`; + +`express.Router([options]);` + +options: ` +caseSensitive //Enables case sensitivity + +mergeParams //if param names of child and parent are conflicted then the child takes the precedence + +strict // Enables Strict routing +`; + +`express.static(root, [options]);` + +options: ` +dotfiles // determines how dotfiles are used + +etag // Operates etag generation + +extensions // Operates file extension fallback + +fallthrough // Enable or disable the immutable directive in the Cache-Control response header + +index // sends the specified directory index file + +LastModified // sets the Last-Modified header to the last modified date + +setHeaders // Function for setting HTTP headers to serve with the file +`; + +`express.text([options]);` + +options: ` +defaultCharset // Sets the default charset for the text context. + +inflate // to manage the deflated bodies like enabling and disabling + +limit // Controls the maximum request body size. + +type // This is used to determine the type of middleware will parse + +verify // It is an undefined function which used to verify the middleware parsing. +`; + +`express.urlencoded([options]);` + +options: ` +extended // it allows to choose between parsing the URL-encoded data or the qs library + +parameterLimit // It controls the no of params. + +inflate // to manage the deflated bodies like enabling and disabling + +limit // Controls the maximum request body size. + +type // This is used to determine the type of middleware will parse + +verify // It is an undefined function which used to verify the middleware parsing. +`; + +```Application`````; +Properties```app.local`; + +`app.locals.title = "My Cheatsheet"; + +console.dir(app.locals.title)`; `// Creating objects with local variables` + +app.mountpath` + +``app.mountpath``const admin = express() +admin.get('/', function(req,res){ + console.log(admin.mountpath) + res.send('Admin Homepage') +}) + +app.use('', admin)`; `// Mounting a sub - app` + +``Event`` + +`admin.on('mount', (parent){ + console.log('Admin Mounted') +})` `// Mounting on a parent app` + +``Methods`` +`app.get('/', function(req, res){ + res.send('GET request to message') +})` `// get requests to the specified path` + +`app.post('/', function(req,res){ + res.send('POST request to a webpage') +})` `// post request to the specified path` + +`app.put('/', function(req,res){ + res.send('PUT request to a webpage') +})` `// post request to the specified path` + +`app.delete('/', function(req,res){ + res.send('DELETE request to a webpage') +})` `// delete request to the specified path` + +`app.all('/', function(req,res,next){ + console.log('Accessing the secret section....') + next() +})` `// Routing all types of HTTP request` + +`app.param('user', function(req,res,next){ + User.find(id, function(err, user){ + if(err){ + next(err) + } else if (user){ + req.user = user + next() + } else { + next(new Error('Failed to load user')) + } + }) +})` `// Adding callback trigger to route parameters` + +`app.use(function(req,res,next){ + res.send('Hey There!') +})` `// To Invoke the middleware layer that you want to add` + +```Request``` +``Methods`` + +`req.get('content-type')` `// Returns the specified HTTP req header` + +`req.accepts('html')` `// Checks if the specified content types are available or not` + +`req.is('json')` `// Requests the matching content-type` + +`var range = req.range(1000) +if (range.type === 'bytes'){ + range.forEach(function(r){ + // Your code + }) +}` `// Range header parser` + +``Properties`` + +`req.param('name')` `// Requests the param name when present` + +`app.post('/', function (req, res, next) { + console.log(req.body) + res.json(req.body) +})` `// Data submitted in the request body` + +`console.dir(req.cookies.name)` `// Contains cookies sent by the request` + +`console.dir(req.query.q)` `// Query string parameter in the route` + +`console.log(req.route) +res.send('GET')` `// Outputs all the layer, methods, path` + +`console.dir(req.signedCookies.user)` `// Logs all the signed cookies sent by the request` + + +```Response``` +``Methods`` + +`res.redirect('https://google.com')` `// Redirects to the intended page` + +`res.send({message: 'Awesome Stuffs'})` `// Response to the webpage` + +`res.json({alert: 'awesomecheatsheets'})` `// Response in JSON type` + +`const file = req.params.name; +res.sendFile(file, options, function(err){ + if(err){ + next(err) + }else{ + console.log('Sent:', file) + } +})` `// Sends file to the intended path` + +`res.render('index')` `// Rendering the intended file` + +```BodyParser``` + +`const BodyParser = require('body-parser') +app.use(BodyParser.json()) +app.use(BodyParser.urlencoded({ + extended: true +}))` `// Parses incoming request bodies` \ No newline at end of file