سلام استاد بیشتر قابلیتی که template engin ها دارند ریکت هم داره میشه به جای tamplate engin های موجود از ریکت استفاده کرد؟؟ اگر میشه چطور باید این کار رو انجام داد؟؟؟؟ ممنون از دوره خوبتنون
سلام
با کسب اجازه از استاد قربانی
باید یک 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 }
( نام ها با توجه به کار خودتون تغییر بدید )
🌹🌹🌹
سلام خیلی ممنون دوست عزیز امیدوارم سال بی باگی داشته باشی :)