问题 在Express中路由文件夹


创建Express应用程序时,您将获得路径文件夹。所有路由都在app.js文件中注册。然而,发生的事情的逻辑位于routes文件夹的文件中。这是其他框架中控制器文件夹的同义词吗?这是您应该添加请求/响应逻辑的位置吗?


1778
2018-01-04 15:30


起源



答案:


是的,与控制器文件夹有点相同。 IMO,你最好使用不同的文件,就像使用另一种语言的控制器一样,因为当应用程序变得越来越大时,当所有请求/响应逻辑都在同一个文件中时,很难理解代码。

示例:

app.js :

var express = require('express'),
    employees = require('./routes/employee');

var app = express();

app.get('/employees', employees.findAll);
app.get('/employees/:id', employees.findById);

app.listen(80);

路线/ employee.js :

exports.findAll = function(req, res) {
    res.send([{name:'name1'}, {name:'name2'}, {name:'name3'}]);
};

exports.findById = function(req, res) {
    res.send({id:req.params.id, name: "The Name", description: "description"});
};

12
2018-01-04 15:44



我认为主要区别在于其他框架可能使用文件夹层次结构来定义哪些控制器响应哪些路由。在express中,该文件夹只是转储路由定义以清理代码的地方。 - Jim Schubert
@Jp Bond:谢谢:) - LuckyLuke


答案:


是的,与控制器文件夹有点相同。 IMO,你最好使用不同的文件,就像使用另一种语言的控制器一样,因为当应用程序变得越来越大时,当所有请求/响应逻辑都在同一个文件中时,很难理解代码。

示例:

app.js :

var express = require('express'),
    employees = require('./routes/employee');

var app = express();

app.get('/employees', employees.findAll);
app.get('/employees/:id', employees.findById);

app.listen(80);

路线/ employee.js :

exports.findAll = function(req, res) {
    res.send([{name:'name1'}, {name:'name2'}, {name:'name3'}]);
};

exports.findById = function(req, res) {
    res.send({id:req.params.id, name: "The Name", description: "description"});
};

12
2018-01-04 15:44



我认为主要区别在于其他框架可能使用文件夹层次结构来定义哪些控制器响应哪些路由。在express中,该文件夹只是转储路由定义以清理代码的地方。 - Jim Schubert
@Jp Bond:谢谢:) - LuckyLuke