当前位置: 首页 > 面试题库 >

正确组织myapp / routes / *的方法

米嘉禧
2023-03-14
问题内容

使用最新的稳定的node.js和npm的express,我创建了我的第一个express项目。

默认生成的应用定义了route / index.js,其中包含一个呈现默认索引视图的路由。

我立即假定我可以将其他.js文件添加到route /文件夹中,并且将它们包括在内。这没有成功。仅包含路由/index.js。向route /
index.js添加其他路由可以正常工作。

按照快递项目生成器提供的结构,定义和组织快递路线的正确方法是什么?

答案就是对DailyJS文章的解释:

给出以下路线:

app.get('/', function() {});
app.get('/users', function() {});
app.get('/users/:id', function() {});

…创建以下文件:

routes/
├── index.js
├── main.js
└── users.js

然后,在route / index.js内部:

require('./main');
require('./users');

对于每个新的相关路由组,在route /中创建一个新文件,并从route / index.js中对它进行require()。
将main.js用于实际上不适合其他文件的路由。


问题答案:

我更喜欢动态加载路由,而不是每次添加新的路由文件时都必须手动添加另一个需求。这是我目前正在使用的。

var fs = require('fs');

module.exports = function(app) {
    console.log('Loading routes from: ' + app.settings.routePath);
    fs.readdirSync(app.settings.routePath).forEach(function(file) {
        var route = app.settings.routePath + file.substr(0, file.indexOf('.'));
        console.log('Adding route:' + route);
        require(route)(app);
    });
}

我在应用程序加载时称呼它,然后在routePath中需要所有文件。每个路由的设置如下:

module.exports = function(app) {
    app.get('/', function(req, res) {
        res.render('index', {
            title: 'Express'
        });
    });
}

要添加更多路由,现在要做的就是将新文件添加到routePath目录中。



 类似资料:
  • 问题内容: 我有一个包含多个模块的国际化项目。每个模块都有自己的捆绑包集: 但是,许多国际化术语是多余的(例如“确定”或“取消”),我希望将这些术语放在一个地方以便于维护和开发。 我找到了有关ResourceBundle继承的有用说明,但是似乎(不?)共同祖先不会被适当地国际化,原因是: 我的捆绑软件组织是否可以脱离基础?提供共同的国际化祖先的正确方法是什么? 问题答案: 您想要的似乎是资源的层次

  • 问题内容: 我似乎在将数据推入状态数组时遇到问题。我正在尝试以这种方式实现它: 但是我相信这是不正确的方式,并导致可变性问题? 问题答案: 返回扩展数组的长度,而不是数组本身。Array.prototype.push()。 我猜您希望返回的值是数组。 不变性 似乎这是React的行为: 切勿直接更改this.state,因为此后调用setState()可能会替换您所做的更改。将此this.stat

  • 基于WEB的人事管理系统 基本实现了登录,用户权限管理,部分页面验证,增加员工,基础的增删查改都完善了。 另外,基本的加密存储密码这些都有的,目前系统实用性不强,但可以用作入门express的参考 尽量往MVC靠拢了,app负责路由转发,jade负责view,js负责M、C,很多命名不规范,两三天快速入门的东西 看心情去一步步补齐功能了~~ 系统技术栈 后端: node + express + j

  • 所以我有一个Java应用程序,它使用一个固定的线程池来执行一些代码。此代码包括使用输出到系统的第三方库。犯错误当我让这段代码执行单线程时,我“重定向”了系统。错误为最终打印到log4j日志的打印流。基本上是这样的: 这按预期工作。输出打印到日志文件而不是控制台,我可以通过更改log4j配置完全删除输出。完美。 当我开始添加多线程时,我做了一些研究,遇到了这样一个问题:在多线程Java程序中,每个线

  • 本文向大家介绍Powershell创建数组正确、更快的方法,包括了Powershell创建数组正确、更快的方法的使用技巧和注意事项,需要的朋友参考一下 通常当新的对象添加到一个数组中,根据经验你最担心其性能问题。下面第一个例子将告诉你一个错误的操作方法: 在这个循环中,这个数组通过符号“+=”增加了许多新的对象。这样做会需要很长时间,因为在你改变其大小时Powershell每次需要去创造一个新的数

  • 描述 (Description) 它定义路由器上应用程序对象的URL表示,并包含来自URL的传入路由值。 语法 (Syntax) router.routes 例子 (Example) <!DOCTYPE html> <html> <head> <title>Router Example</title> <script src = "https://code.jque