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`
|