Ax ios возвращает данные с html вместо json - PullRequest
0 голосов
/ 04 августа 2020

Я получаю ответ с 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 из маршрута '/', но не из других маршрутов. Когда он вызывается из '/', сервер выводит привет из первой строки функции аутентификации, но не из других маршрутов. Любая помощь? Спасибо!

...