應用程式.js
// Calling Routes
require("./routes")(app);
路由器檔案夾 index.js
module.exports = function (app) {
app.use("/", require("./all_routes"));
}
all_routes.js
var express = require("express");
var router = express.Router();
router.get("/", function (req, res, next) {
res.render("home/index.html");
});
//About Page
router.get("/about", function (req, res, next) {
res.render("about/index.html");
});
//Contact
router.get("/contact", function (req, res, next) {
res.render("contact/index.html");
});
//product
router.get("/product", function (req, res, next) {
res.render("product/index.html");
});
//product list
router.get("/product/demo-product", function (req, res, next) {
res.render("demo-product/index.html");
});
router.get("/product/request-product", function (req, res, next) {
res.render("request-product/index.html");
});
//service
router.get("/service", function (req, res, next) {
res.render("product/index.html");
});
//service list
router.get("/service/what-we-do", function (req, res, next) {
res.render("what-we-do/index.html");
});
router.get("/service/how-we-do", function (req, res, next) {
res.render("how-we-do/index.html");
});
我試圖減少all_routes.js檔案中的代碼具有相同的代碼一次又一次重復
我在網上搜索并嘗試動態創建它但沒有成功有什么方法可以減少代碼行,因為我已經給出了上面的代碼
uj5u.com熱心網友回復:
如果您想減少所有get路線的樣板,一種選擇是創建一個物件來將您的路線映射到它們正在加載的檔案。然后您可以迭代該物件并將路由添加到您的路由器。
const routes = {
"/": "home/index.html",
"/about": "about/index.html",
"/contact": "contact/index.html"
// Add others here
}
for (let key in routes) {
router.get(key, function (req, res, next) {
res.render(routes[key]);
});
}
編輯:如果您的路線一致,因為該index.html檔案將始終位于以/路線中最后一個部分之后的部分命名的目錄中,您可以使用陣列和一些奇特的邏輯。只是不要違反規則!
const routes = [
"/contact",
"/product",
"/product/demo-product",
"/product/request-product"
]
routes.forEach(route => {
const path = /[^/]*$/.exec(route)[0];
router.get(route, function (req, res, next) {
res.render(`${path}/index.html`);
});
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/366574.html
標籤:javascript 节点.js 表达 路线
