awesome-cheatsheets/backend/express.js

226 lines
7.4 KiB
JavaScript
Raw Normal View History

2021-06-03 02:36:46 +00:00
/* *******************************************************************************************
* API
* http://expressjs.com/en/api.html
* ******************************************************************************************* */
2021-06-04 10:47:37 +00:00
`npm i express --save` or`yarn add -D express``(-D saves it as a dev dependency)`
`yarn add -D @types/express``(Installing for TS)`
2021-06-03 02:36:46 +00:00
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
* ******************************************************************************************* */
2021-06-03 06:34:27 +00:00
```Methods```;
2021-06-03 02:36:46 +00:00
2021-06-04 10:47:37 +00:00
`express.json([options]);`
2021-06-03 02:36:46 +00:00
options: `
2021-06-03 04:29:08 +00:00
inflate // to manage the deflated bodies like enabling and disabling
2021-06-03 02:36:46 +00:00
2021-06-03 04:29:08 +00:00
limit // Controls the maximum request body size.
2021-06-03 02:36:46 +00:00
2021-06-03 04:29:08 +00:00
reviver // It is passed directly to JSON.parse as an second argument
2021-06-03 02:36:46 +00:00
2021-06-03 04:29:08 +00:00
type // This is used to determine the type of middleware will parse
2021-06-03 02:36:46 +00:00
2021-06-03 04:29:08 +00:00
verify // It is an undefined function which used to verify the middleware parsing.
2021-06-03 02:36:46 +00:00
`;
2021-06-04 10:47:37 +00:00
`express.raw([options]);`
2021-06-03 02:36:46 +00:00
options: `
2021-06-03 04:29:08 +00:00
inflate // to manage the deflated bodies like enabling and disabling
2021-06-03 02:36:46 +00:00
2021-06-03 04:29:08 +00:00
limit // Controls the maximum request body size.
2021-06-03 02:36:46 +00:00
2021-06-03 04:29:08 +00:00
type // This is used to determine the type of middleware will parse
2021-06-03 02:36:46 +00:00
2021-06-03 04:29:08 +00:00
verify // It is an undefined function which used to verify the middleware parsing.
2021-06-03 02:36:46 +00:00
`;
2021-06-04 10:47:37 +00:00
`express.Router([options]);`
2021-06-03 02:36:46 +00:00
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
`;
2021-06-03 04:24:44 +00:00
2021-06-04 10:47:37 +00:00
`express.static(root, [options]);`
2021-06-03 04:24:44 +00:00
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
`;
2021-06-04 10:47:37 +00:00
`express.text([options]);`
2021-06-03 04:24:44 +00:00
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.
`;
2021-06-04 10:47:37 +00:00
`express.urlencoded([options]);`
2021-06-03 04:24:44 +00:00
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.
`;
2021-06-03 06:34:27 +00:00
```Application`````;
Properties```app.local`;
`app.locals.title = "My Cheatsheet";
2021-06-03 08:50:43 +00:00
2021-06-04 10:47:37 +00:00
console.dir(app.locals.title)`; `// Creating objects with local variables`
2021-06-03 08:50:43 +00:00
app.mountpath`
2021-06-03 17:44:49 +00:00
``app.mountpath``const admin = express()
admin.get('/', function(req,res){
console.log(admin.mountpath)
res.send('Admin Homepage')
})
2021-06-04 10:47:37 +00:00
app.use('<admin dir>', admin)`; `// Mounting a sub - app`
2021-06-03 17:44:49 +00:00
``Event``
`admin.on('mount', (parent){
console.log('Admin Mounted')
2021-06-04 10:47:37 +00:00
})` `// Mounting on a parent app`
2021-06-04 04:24:29 +00:00
``Methods``
`app.get('/', function(req, res){
res.send('GET request to message')
2021-06-04 10:47:37 +00:00
})` `// get requests to the specified path`
2021-06-04 04:24:29 +00:00
`app.post('/', function(req,res){
res.send('POST request to a webpage')
2021-06-04 10:47:37 +00:00
})` `// post request to the specified path`
2021-06-04 04:24:29 +00:00
`app.put('/', function(req,res){
res.send('PUT request to a webpage')
2021-06-04 10:47:37 +00:00
})` `// post request to the specified path`
2021-06-04 04:24:29 +00:00
`app.delete('/', function(req,res){
res.send('DELETE request to a webpage')
2021-06-04 10:47:37 +00:00
})` `// delete request to the specified path`
2021-06-04 04:24:29 +00:00
`app.all('/', function(req,res,next){
console.log('Accessing the secret section....')
next()
2021-06-04 10:47:37 +00:00
})` `// Routing all types of HTTP request`
2021-06-04 04:24:29 +00:00
`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'))
}
})
2021-06-04 10:47:37 +00:00
})` `// Adding callback trigger to route parameters`
2021-06-04 04:24:29 +00:00
`app.use(function(req,res,next){
res.send('Hey There!')
2021-06-04 10:47:37 +00:00
})` `// To Invoke the middleware layer that you want to add`
2021-06-04 05:15:05 +00:00
```Request```
``Methods``
2021-06-04 10:47:37 +00:00
`req.get('content-type')` `// Returns the specified HTTP req header`
2021-06-04 06:11:30 +00:00
2021-06-04 10:47:37 +00:00
`req.accepts('html')` `// Checks if the specified content types are available or not`
2021-06-04 06:11:30 +00:00
2021-06-04 10:47:37 +00:00
`req.is('json')` `// Requests the matching content-type`
2021-06-04 06:11:30 +00:00
2021-06-04 10:47:37 +00:00
`var range = req.range(1000)
if (range.type === 'bytes'){
range.forEach(function(r){
// Your code
})
}` `// Range header parser`
2021-06-04 06:11:30 +00:00
2021-06-04 05:17:31 +00:00
``Properties``
2021-06-04 06:11:30 +00:00
2021-06-04 10:47:37 +00:00
`req.param('name')` `// Requests the param name when present`
2021-06-04 05:17:31 +00:00
`app.post('/', function (req, res, next) {
2021-06-04 05:15:05 +00:00
console.log(req.body)
res.json(req.body)
2021-06-04 10:47:37 +00:00
})` `// Data submitted in the request body`
2021-06-04 05:15:05 +00:00
2021-06-04 10:47:37 +00:00
`console.dir(req.cookies.name)` `// Contains cookies sent by the request`
2021-06-04 05:15:05 +00:00
2021-06-04 10:47:37 +00:00
`console.dir(req.query.q)` `// Query string parameter in the route`
2021-06-04 05:15:05 +00:00
`console.log(req.route)
2021-06-04 10:47:37 +00:00
res.send('GET')` `// Outputs all the layer, methods, path`
2021-06-04 05:15:05 +00:00
2021-06-04 10:47:37 +00:00
`console.dir(req.signedCookies.user)` `// Logs all the signed cookies sent by the request`
2021-06-04 05:15:05 +00:00
2021-06-04 06:11:30 +00:00
```Response```
``Methods``
2021-06-04 10:47:37 +00:00
`res.redirect('https://google.com')` `// Redirects to the intended page`
2021-06-04 06:11:30 +00:00
2021-06-04 10:47:37 +00:00
`res.send({message: 'Awesome Stuffs'})` `// Response to the webpage`
2021-06-04 06:11:30 +00:00
2021-06-04 10:47:37 +00:00
`res.json({alert: 'awesomecheatsheets'})` `// Response in JSON type`
2021-06-04 06:11:30 +00:00
`const file = req.params.name;
res.sendFile(file, options, function(err){
if(err){
next(err)
}else{
console.log('Sent:', file)
}
2021-06-04 10:47:37 +00:00
})` `// Sends file to the intended path`
2021-06-04 06:11:30 +00:00
2021-06-04 10:47:37 +00:00
`res.render('index')` `// Rendering the intended file`
2021-06-04 06:11:30 +00:00
2021-06-04 06:21:15 +00:00
```BodyParser```
`const BodyParser = require('body-parser')
app.use(BodyParser.json())
app.use(BodyParser.urlencoded({
extended: true
2021-06-04 10:47:37 +00:00
}))` `// Parses incoming request bodies`