Я пытаюсь реализовать рабочий процесс, в котором, когда пользователь входит в систему, учетные данные пользователя отправляются на один из маршрутов в express через ajax, чтобы проверить, существует ли пользователь, если пользователь существует, маршрут express отправит сообщение «авторизовано» вызову ajax, а обратный вызов успешного выполнения будет вызван, когда другой вызов ajax отправит заголовок вместе с данными на маршрут express (/ reroute). Этот express / reroute api пытается повторно перенаправить на другой маршрут / домашнюю страницу. Внутри маршрута / homepage я пытаюсь отобразить файл html с помощью res.sendfile, а файл res.sendfile не работает.
мой логин ajax вызов
$(document).on("click", "#login", (e) => {
const email = $('#logemail').val().trim();
const pass = $('#password').val().trim();
$.ajax({
url: "http://localhost:4000/checkuserexists",
type: "POST",
dataType: "JSON",
data: {
email: email,
pass: pass
},
success: function(data, textStatus, request) {
console.log(data)
if (data.message === "authorised") {
const token = request.getResponseHeader('access-token');
localStorage.setItem("access-token", token);
$.ajax({
url: "http://localhost:4000/reroute",
type: "GET",
dataType: "JSON",
beforeSend: function(xhr) {
xhr.setRequestHeader('access-token', token);
},
data: {
redirectTo: 'homepage'
},
success: function(data) {
console.log(data + " from ajax ")
}
})
} else {
$('.alertbox').show();
$('.alertbox').text("User unauthorised");
}
}
})
})
мой express маршрут (/ перенаправить)
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
if (req.header('access-token')) {
const token = req.header('access-token');
const redirectTo = req.query.redirectTo;
if (redirectTo === 'homepage') {
res.setHeader('access-token', token)
res.redirect('/homepage')
}
}
})
module.exports = router;
мой маршрут с домашней страницы
const express = require('express');
const path = require('path');
const token_middleware = require('../middlewares/jwtauth');
const router = express.Router();
router.use(express.static(path.join(__dirname, "../public")))
router.get('/', token_middleware, (req, res) => {
if (req.status === "exists") {
res.sendFile(path.join(__dirname, "../public/homepage.html"));
} else {
res.redirect('/');
}
})
module.exports = router;