• 1400/01/21

استفاده از ریکت برای template engin ها :

سلام استاد بیشتر  قابلیتی که template engin ها دارند ریکت هم داره   میشه به جای tamplate engin  های موجود از ریکت استفاده کرد؟؟  اگر میشه چطور باید این کار رو انجام داد؟؟؟؟       ممنون از دوره خوبتنون

  • 1400/01/22
  • ساعت 10:09

سلام 

با کسب اجازه از استاد قربانی 

باید یک middleware بسازی  توی app.js require کنی 

 exports.setHeaders = (req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
  next();
};

بعد جایگزین 

res.render()

از

 res.status(201).json({ message: '' });

استفاده کنید

برای ساخت پست هم از 

  const product= new Product({
        title,
        info,
        category,
        type,
        icon: icon
      });

      await product.save();

      console.log('Product Created Success');
      res.status(201).json({ message: 'Product Created', product });

استفاده کنید

برای لاگین من از jwt استفاده کردم 

  const token = await jwt.sign(
      {
        user: {
          userId: users._id.toString(),
          email: users.email,
          fullname: users.fullname,
       َAdmin: users.Admin
        }
      },
      'secret',
      {
        expiresIn: '24h'
      }
    );

    res.status(200).json({ token, userId: users._id.toString() });

بعد از ورود کاربر token رو با axios میفرستم 

و با middleware بررسی میکنم 

const jwt = require('jsonwebtoken');

exports.isAuth = (req, res, next) => {
  const authHeader = req.get('Authorization');
  if (!authHeader) {
    const error = new Error('Not authenticated.');
    error.statusCode = 401;
    throw error;
  }
  const token = authHeader.split(' ')[1];
  let decodedToken;
  try {
    decodedToken = jwt.verify(token, 'secret');
  } catch (err) {
    err.statusCode = 500;
    throw err;
  }
  if (!decodedToken) {
    const error = new Error('Not authenticated.');
    error.statusCode = 401;
    throw error;
  }
  req.userId = decodedToken.userId;
  next();
};

بجای get برای کل route ها از post استفاده میشه  

قبل از کنترولر ساخت پست هم از middleware  که برای jwt ساخته میشه استفاده کنید { isAuth  }

( نام ها با توجه به کار خودتون تغییر بدید  )


  • 1400/01/22
  • ساعت 15:42

🌹🌹🌹


  • 1400/01/25
  • ساعت 10:40

سلام خیلی ممنون دوست عزیز    امیدوارم سال بی باگی داشته باشی :)


logo-samandehi