ਐਕਸਪ੍ਰੈਸ ਵਿੱਚ ਰੂਟਿੰਗ ਅਤੇ ਮਿਡਲਵੇਅਰ ਲਈ ਗਾਈਡ

ਰੂਟਿੰਗ ਅਤੇ ਮਿਡਲਵੇਅਰ Node.js ਅਤੇ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨ ਬਣਾਉਣ ਲਈ ਐਕਸਪ੍ਰੈਸ ਫਰੇਮਵਰਕ ਵਿੱਚ ਦੋ ਮਹੱਤਵਪੂਰਨ ਸੰਕਲਪ ਹਨ।

ਰੂਟਿੰਗ:

  • ਰੂਟਿੰਗ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਪ੍ਰਕਿਰਿਆ ਹੈ ਕਿ ਕਲਾਇੰਟ ਦੀਆਂ ਬੇਨਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਸੰਭਾਲਣਾ ਹੈ ਅਤੇ ਸਰਵਰ 'ਤੇ ਸੰਬੰਧਿਤ ਸਰੋਤਾਂ ਨਾਲ ਜਵਾਬ ਦੇਣਾ ਹੈ।
  • ਐਕਸਪ੍ਰੈਸ ਵਿੱਚ, ਅਸੀਂ HTTP ਵਿਧੀ (GET, POST, PUT, DELETE, ਆਦਿ) ਅਤੇ ਸੰਬੰਧਿਤ URL ਮਾਰਗ ਨੂੰ ਨਿਰਧਾਰਿਤ ਕਰਕੇ ਰੂਟਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹਾਂ।
  • ਹਰੇਕ ਰੂਟ ਵਿੱਚ ਕਾਰਜ ਕਰਨ ਲਈ ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ ਹੈਂਡਲਰ ਫੰਕਸ਼ਨ ਹੋ ਸਕਦੇ ਹਨ ਜਿਵੇਂ ਕਿ ਬੇਨਤੀ ਪ੍ਰਕਿਰਿਆ, ਡੇਟਾਬੇਸ ਪਹੁੰਚ, ਅਤੇ ਕਲਾਇੰਟ ਨੂੰ ਜਵਾਬ ਭੇਜਣਾ।

ਮਿਡਲਵੇਅਰ:

  • ਮਿਡਲਵੇਅਰ ਫੰਕਸ਼ਨ ਹਨ ਜੋ ਬੇਨਤੀ ਦੇ ਅੰਤਿਮ ਰੂਟ ਹੈਂਡਲਰ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਕ੍ਰਮ ਵਿੱਚ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ।
  • ਇਹਨਾਂ ਦੀ ਵਰਤੋਂ ਆਮ ਕਾਰਜਕੁਸ਼ਲਤਾਵਾਂ ਕਰਨ ਅਤੇ ਵਿਚਕਾਰਲੇ ਕੰਮਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਿਵੇਂ ਕਿ ਪ੍ਰਮਾਣੀਕਰਨ, ਲੌਗਿੰਗ, ਗਲਤੀ ਹੈਂਡਲਿੰਗ, ਆਦਿ।
  • ਮਿਡਲਵੇਅਰ ਨੂੰ ਪੂਰੀ ਐਪਲੀਕੇਸ਼ਨ 'ਤੇ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਜਾਂ ਖਾਸ ਰੂਟਾਂ ਲਈ ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
  • ਹਰੇਕ ਮਿਡਲਵੇਅਰ ਨੂੰ ਬੇਨਤੀ (ਬੇਨਤੀ) ਅਤੇ res (ਜਵਾਬ) ਪੈਰਾਮੀਟਰ ਪ੍ਰਾਪਤ ਹੁੰਦੇ ਹਨ ਅਤੇ ਪ੍ਰੋਸੈਸਿੰਗ ਕਰ ਸਕਦੇ ਹਨ, ਅਗਲੇ ਮਿਡਲਵੇਅਰ ਨੂੰ ਬੇਨਤੀ ਪਾਸ ਕਰ ਸਕਦੇ ਹਨ, ਜਾਂ ਕਲਾਇੰਟ ਨੂੰ ਜਵਾਬ ਭੇਜ ਕੇ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਖਤਮ ਕਰ ਸਕਦੇ ਹਨ।

ਐਕਸਪ੍ਰੈਸ ਵਿੱਚ ਰੂਟਿੰਗ ਅਤੇ ਮਿਡਲਵੇਅਰ ਨੂੰ ਜੋੜਨ ਦੀ ਉਦਾਹਰਨ:

const express = require('express');
const app = express();

// Middleware
const loggerMiddleware = (req, res, next) => {
  console.log('A new request has arrived!');
  next();
};

// Apply middleware to the entire application
app.use(loggerMiddleware);

// Main route
app.get('/', (req, res) => {
  res.send('Welcome to the homepage!');
});

// Another route
app.get('/about', (req, res) => {
  res.send('This is the about page!');
});

// Start the server
app.listen(3000, () => {
  console.log('Server is listening on port 3000...');
});

ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਅਸੀਂ loggerMiddlewareਸਰਵਰ 'ਤੇ ਆਉਣ ਵਾਲੀ ਹਰ ਨਵੀਂ ਬੇਨਤੀ ਨੂੰ ਲੌਗ ਕਰਨ ਲਈ ਇੱਕ ਕਸਟਮ ਮਿਡਲਵੇਅਰ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਹੈ। ਇਹ ਮਿਡਲਵੇਅਰ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਪੂਰੀ ਐਪਲੀਕੇਸ਼ਨ 'ਤੇ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ app.use()। ਫਿਰ, ਅਸੀਂ ਦੋ ਰੂਟ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤੇ ਹਨ, ਇੱਕ ਮੁੱਖ ਪੰਨੇ ( '/') ਲਈ ਅਤੇ ਦੂਜੇ ਬਾਰੇ ਪੰਨੇ ( '/about') ਲਈ। ਅੰਤ ਵਿੱਚ, ਅਸੀਂ ਸਰਵਰ ਚਾਲੂ ਕਰਦੇ ਹਾਂ ਅਤੇ ਪੋਰਟ 3000 'ਤੇ ਸੁਣਦੇ ਹਾਂ।

ਮਿਡਲਵੇਅਰ ਨੂੰ loggerMiddlewareਹਰੇਕ ਬੇਨਤੀ ਲਈ ਚਲਾਇਆ ਜਾਵੇਗਾ, ਅਨੁਰੋਧ ਵਿੱਚ ਸੰਬੰਧਿਤ ਰੂਟ ਹੈਂਡਲਰ ਜਾਂ ਮਿਡਲਵੇਅਰ ਨੂੰ ਬੇਨਤੀ ਪਾਸ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਕੰਸੋਲ ਉੱਤੇ ਇੱਕ ਸੁਨੇਹਾ ਲੌਗ ਕਰਨਾ।

ਰੂਟਿੰਗ ਅਤੇ ਮਿਡਲਵੇਅਰ ਦਾ ਇਹ ਸੁਮੇਲ ਸਾਨੂੰ ਇੱਕ ਐਕਸਪ੍ਰੈਸ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਬੇਨਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਅਤੇ ਆਮ ਕੰਮਾਂ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।