在Express中路由文件夹

Luc*_*uke 13 javascript node.js express

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

Jea*_*ond 13

是的,与控制器文件夹有点相同.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);
Run Code Online (Sandbox Code Playgroud)

routes/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"});
};
Run Code Online (Sandbox Code Playgroud)

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