Невозможно выполнить маршрутизацию, несмотря на наличие router.get - PullRequest
0 голосов
/ 03 августа 2020

Хотя у меня есть правильный маршрут к нужной странице, он все равно показывает, что я не могу получить / ошибку. Поскольку мой первый маршрутизатор get (в agent. js) вызывает таблицу перед ее визуализацией, я не уверен, как подойти к этой проблеме. Это попытка, которую я пробовал ниже, но я получаю сообщение Невозможно GET /function%20router(req,%20res,%20next)%20%7B%0A%20%20%20%20router.handle(req,%20res,% 20next);% 0A% 20% 20% 7D.

Если я попытаюсь отобразить страницу агента в route. js, таблица вызовет ошибку, потому что страница отображается до получения данных из базы данных и визуализации снова в конце.

приложение. js

const routesRouter = require("./routes/routes");
const agentRouter = require("./routes/agent");

app.use("/", routesRouter);
app.use("/agent", agentRouter);

маршрут. js

const express = require("express");
const router = express.Router();
const agentRoute = require("./agent");

router.get("/", async function (req, res) {
  res.render("login.ejs");
});

router.post("/login", async function (req, res) {
  const { username, password } = req.body;

  if (username == 1 && password == 1) {
    res.redirect("/agent");
} 

  else {
    return res.status(401).json({
      message: "Auth fail",
    });
  }

router.get("/agent", async function (req, res) {
  res.redirect(agentRoute);
});

});

агент. js

const express = require("express");
const router = express.Router();
const mysql = require("mysql");
const db = require("../server");

function getConnection() {
    return mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "",
      database: "nodejs_login",
    });
  }

  router.get("/agent", function (req, res, next) {
    const sql = "SELECT * FROM policy1 WHERE policyAgent = 'Ron'";
    db.query(sql, function (err, data, fields) {
      console.log(data);
      if (err) throw err;
      res.render("agenthome", { title: "Policy List", policyData: data });
    });
  });
  
  module.exports = router;

Ответы [ 3 ]

2 голосов
/ 03 августа 2020

В вашем агенте. js вы по-прежнему получаете '/ agent' , что приведет к http://localhost: 3000 / agent / agent

router.get("/agent", function (req, res, next) {
    const sql = "SELECT * FROM policy1 WHERE policyAgent = 'Ron'";
    ....
});

Поэтому измените router.get ("/ agent") на router.get ("/") в агенте . js файл

1 голос
/ 03 августа 2020

Вы вызываете функцию перенаправления на маршрутизатор, которая определенно не работает. вы импортировали и вызвали функцию app.use в agentRouter в своем приложении. js этого должно быть достаточно

// REMOVE this code from app.js
router.get("/agent", async function (req, res) {    
  res.redirect(agentRoute);
});
0 голосов
/ 03 августа 2020

Точка 1: изменить маршрут. js на маршруты. js

Точка 2: я полагаю, вы использовали

module.exports = router;

в маршруте. js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...