【问题标题】:Is it bad practice to call express routes from another?从另一个人那里调用快速路线是不好的做法吗?
【发布时间】:2012-12-05 05:23:49
【问题描述】:

我有一条路线可以做很多不同的事情。例如:

一个路由文件:

exports.index = function (req, res) {
    if (x)
        exports.login(req,res);
    else
        exports.dostuff(req,res);
};

exports.login = function(req, res) {
    res.render('login');
};

exports.dostuff = function(req, res) { 
    res.render('otherfile');
};

这是不好的做法吗?有没有更好的方法来处理这种情况?谢谢。

【问题讨论】:

  • 这个问题确实很主观,但有时最好只做一个重定向。
  • 即,如果您在需要身份验证的页面上并且您呈现登录页面而不是重定向到登录页面,我会讨厌你
  • 你需要看看在你的 express 应用中使用中间件。这样,它将确保您已登录(如果页面要求您登录)并适当地重定向,而不是自己在路由中处理它。

标签: node.js routes express


【解决方案1】:

这不是一个坏习惯,但也不是最适合这种情况的做法。

你可以这样做来获得更好的路由解决方案。

  • 在路由器文件中配置您的路由并在特定控制器中处理您的行为。

例如像这样的东西。 (路由器.js)

//First requiring your controller for actions
var jobController = require("../controllers/job_controller");

module.exports = function(app) {

    app.get("/jobs", jobController.getJobIndex);
    app.get("/jobs/create", jobController.createJobView);
    app.get("/jobs/update/:id", jobController.updateJobView);
    app.get("/jobs/delete/:id", jobController.deleteJob);
    app.get("/jobs/:id", jobController.getJobDetails);

    app.post("/jobs/create", jobController.createJobPost);
    app.post("/jobs/update", jobController.updateJobPost);

};

并且在你的主 app.js 中需要 router.js

var router = require('./routes/router')(app)

【讨论】:

    猜你喜欢
    • 2016-12-27
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-01
    • 2014-04-20
    相关资源
    最近更新 更多