Я новичок в приложении стека MEAN, и у меня возникли некоторые проблемы при попытке отправить данные с сервера во внешний интерфейс.Тем не менее, у меня есть некоторое общение, но это все, что я могу сделать.На сервере у меня есть сообщение json, которое отправляется.
Сервер
router.route("/users/register").post((req, res) => {
registerLogin.findOne({ $or: [{ username }, { email }]}, (err, user) => {
if (err)
res.send(err);
else if (!username || !email || !password)
res.status(403).json({ registerErrRequired: "Fill out whole form." });
Внешний интерфейс
registerUser(username, email, password) {
const user = {
username: username,
email: email,
password: password
};
return this.http.post(`${this.uri}/users/register`, user)
.pipe(map(response => console.log(response)))
.subscribe(() => { this.router.navigate(["/users/login"]) }, (errResp) => {
errResp.error ? this.ngFlashMessageService.showFlashMessage({
messages: [errResp.error.registerErrRequired], // Where json message gets caught and shown to the browser
dismissible: true,
timeout: false,
type: 'danger'
}) : console.log("An unkown error occured.");
});
}
Это работает хорошо, но я не могу выполнять запросы / запросы, кроме как использовать флэш-сообщение.Моя проблема заключается в желании использовать его другими способами, чем просто флэш-сообщения.Например, если у пользователя нет сеанса, я хочу, чтобы он вернулся обратно на страницу входа.Вот что я попробовал, но не получилось.
Сервер
// Middleware
const redirectLogin = ((req, res, next) => {
if (!req.session.user)
res.status(401).json({ loggedIn: false });
else
next();
});
// Route
router.route("/home").get(redirectLogin, (req, res) => {
Blog.find((err, docs) => {
if (err)
console.log(err);
else
res.json(docs);
});
});
Внешний интерфейс
homePage() {
// Here is where I would like to say, If session, then true, else navigate(["/users/login"])
if (loggedIn === false)
this.router.navigate(["/users/login"])
else
// Success
return this.http.get(`${this.uri}/home`);
}
Единственный способ, которым я нашел связь, - отправка сообщений об ошибках, но не более того.