Я получаю ответ с HTML вместо любого JSON или ожидаемой ошибки.
Сервер. js:
app.use('/users', userRouter);
if (process.env.NODE_ENV === 'production') {
app.use(express.static(path.join(__dirname, '../client/build')));
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, '../client/build', 'index.html'));
});
}
Вот код для вызова ax ios:
useEffect(() => {
axios
.get(`users/auth`, {
withCredentials: true,
mode: 'cors',
})
.then(
(res) => {
console.log(JSON.stringify(res));
if (res.data.loginSuccess) {
setLogin(true);
setToken(res.data.token);
} else {
setLogin(false);
}
},
(err) => {
alert(JSON.stringify(err));
setLogin(false);
}
);
}, []);
Маршрут:
router.get('/auth', auth, (req, res) => {
res.status(200).json({
loginSuccess: true,
token: req.token,
});
});
И промежуточное ПО для авторизации:
let auth = (req, res, next) => {
console.log('hi');
let token = req.cookies.x_auth;
if (!token) return res.json({ loginSuccess: false });
User.findByToken(token, (err, user) => {
if (err) {
throw err;
}
if (!user) {
return res.json({
loginSuccess: false,
error: true,
req: req,
});
}
req.token = token;
next();
});
};
module.exports = { auth };
Вызов ax ios возвращается с намеченным json из маршрута '/', но не из других маршрутов. Когда он вызывается из '/', сервер выводит привет из первой строки функции аутентификации, но не из других маршрутов. Любая помощь? Спасибо!