У меня есть приложение узла, которое обслуживает мое приложение реакции следующим образом:
// STATIC ASSETS WHEN PUSHED TO HEROKU
if (process.env.NODE_ENV === "production") {
app.use(express.static("client/build"));
}
app.get("*", function(req, res) {
res.sendFile(path.join(__dirname, "./client/public/index.html"));
});
обычно это должен быть последний выбранный вами маршрут, поскольку он переопределяет все остальные маршруты get.Тем не менее, у меня есть некоторое промежуточное ПО, которое проверяет аутентификацию:
const jwt = require("express-jwt")
const auth = jwt({
secret: process.env.JWT_SECRET,
userProperty: 'payload'
});
app.use("/auth", authRoutes);
app.use(auth);
app.use("/api", routes);
Маршруты /auth
используются для входа и регистрации и, следовательно, не защищены промежуточным ПО, однако маршруты /api
.
Но когда я пытаюсь использовать приложение, оно неправильно отправляет данные из запросов API, таких как GET /api/users
, вместо этого возвращает HTML, как указано в * маршруте.
Есть лиспособ для меня, чтобы мои аутентифицированные маршруты и все еще правильно обслуживать мое приложение реагировать?