Добавить сервер узла входа перед другим узловым js-сервером

#javascript #node.js #axios

#javascript #node.js #аксиос

Вопрос:

Я создал модуль входа в систему, используя сервер узлов (ejs engine), прослушивающий порт 3000. После успешного входа в систему с помощью этого модуля я хочу перенаправить его на другой сервер узла, прослушивающий порт 2011 (созданный с использованием jade engine). перенаправление не работает должным образом.

Работа модуля входа в систему такова, что он помещает запрос axios post с именем пользователя и паролем на живой веб-сайт и получает в ответ код успеха. Регистрация не требуется, так как аутентификация осуществляется этим живым веб-сайтом.

Оба сервера (3000 и 2011) работают нормально, но перенаправление не работает

Могу ли я перенаправить другое приложение узла (2011) на тот же сервер с доменом «localhost: 3000 / welcome»?

 'use strict'
const express=require("express");
const app=express();
const path=require("path");
const port=process.env.PORT || 3000
const pubdir=path.join(__dirname,"/public");
const bodyParser = require('body-parser')
const axios=require("axios");
// const axiosCookieJarSupport = require('axios-cookiejar-support').defau<
// const tough = require('tough-cookie');
// const https = require('https');
// const Cookie=require("request-cookies").Cookie;
// const http=require("http");
// axiosCookieJarSupport(axios);
// const request= require("request");
var urlencodedParser = bodyParser.urlencoded({ extended: false })
const offlineroute=require("./router")

app.set("view engine", "ejs");
app.use(express.static(pubdir))
app.get("/",(req,res)=>{
    res.render("index");
})

const url uat="It's a valid url working fine"
const url_uat_auth="Another url working fine"


app.post("/login",urlencodedParser,(req,resp)=>{
const data = {
    username:req.body.user_name,
    password:req.body.user_pass,
    captcha:"121212",
    deviceID: null,
}
const apiData={
    action: "ACCESSTOKEN",
    username: data.username,
    password: data.password,   
    }



    
    axios.post(url_uat, data)
    .then((res) => {
        // console.log(`Status: ${res.status}`);
        console.log('Body: ', res.data);
        // console.log("headers",res.headers);
     
    if(res.data.message=='auth')
    {  
         console.log("Successfully logged in");
        //  app.use("/welcome",offlineroute);

        resp.redirect("localhost:2011"); //Help me here.
        (async ()=>{
            try {
              const response = await axios.get(url_uat_auth, apiData);
              console.log(response.status);
              console.log(response.headers);
            } catch (error) {
              console.log(error.response.body);
            }
          })();
    

    }
    else if(res.data.message==null amp;amp; res.data.errorCode=='AUTH_9002')
    {
        console.log("Wrong username or password");
    }
    else if(res.data.message==null amp;amp; res.data.errorCode=='SWEB_9000')
    {
        console.log("Invalid Captcha");
    }  
    }).catch((err) => {
        console.error(err);
    });
})
 
app.listen(port,(req,res)=>{
    console.log(`Listening on Port ${port}` );
});
 

Комментарии:

1. Добавьте полный путь, включая протокол. соответственно.перенаправление (» localhost: 2011″ );

2. Как я могу направить другое приложение узла (в 2011 году) для запуска на том же сервере после успешного входа в систему?

Ответ №1:

Попробуйте добавить полный протокол и порт:

 resp.redirect("http://localhost:2011");