【发布时间】:2020-08-03 14:11:56
【问题描述】:
虽然我有正确的页面路由,但它仍然显示我无法获取/错误。因为我的第一个路由器 get(在 agent.js 中)在渲染表之前调用了一个表,所以我不确定如何解决这个问题。这是我在下面尝试过的尝试,但我得到了一个 cannot GET /function%20router(req,%20res,%20next)%20%7B%0A%20%20%20%20router.handle(req,%20res,% 20next);%0A%20%20%7D。
如果我尝试在 route.js 中渲染代理页面,表格将导致错误,因为页面在从数据库获取数据之前渲染并在最后再次渲染。
app.js
const routesRouter = require("./routes/routes");
const agentRouter = require("./routes/agent");
app.use("/", routesRouter);
app.use("/agent", agentRouter);
route.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);
});
});
agent.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;
【问题讨论】: