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

如何在node.js Express 2.5.5的单独路由文件中访问主app.js中声明的变量?

孟自强
2023-03-14
问题内容

我刚刚开始使用新版本的Express(2.5.5),默认情况下会./routes./views和一起创建目录./public

路由内部有一个index.js文件,其中包含:

/*
 * GET home page.
 */

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

默认情况下(express从命令行运行后),这是main中的routes部分app.js

// Routes

app.get('/', routes.index);

我在main中为redis客户端设置了一个变量app.js

var redis = require('redis'),
    db = redis.createClient();

我想知道如何访问包含在其中的文件中的方法db(以及我require在其中的任何其他模块app.js./routes


问题答案:

我真的很喜欢Jamund的解决方案,但是我将概念扩展到了这一点:

// db.js
var redis = require('redis');
module.exports = redis.createClient();

// index.js
var db = require(.'/db')

// whatever other file
var db = require(.'/db')
// do something with db
db.disconnect();

索引上的数据库和其他文件都将获得Redis客户端的相同实例



 类似资料:
  • 我有两个文件,第一个是HTML文件,另一个是javascript文件。我试图做的是在javascript文件上定义一个变量并在Html端访问它。有可能吗?一个粗略的代码附在下面,但它不工作,我得到的favColor是没有定义的错误。提前道谢。 JS端 Html端

  • 问题内容: 如何设置变量,并使其在所有路由中都可用,至少在路由中的文件中可用。使用快速框架和 问题答案: 要创建全局变量,只需声明不带关键字的变量即可。(通常来说,这不是最佳做法,但在某些情况下可能会有用-请小心,因为它将使变量随处可见。) 这是visionmedia / screenshot-app的示例 文件 app.js : 文件 路由/ main.js

  • 我想在我的基于打字稿的项目中,在它们自己的文件中定义几个接口,我将从它们中实现用于生产的类以及用于测试的模拟。但是,我不知道正确的语法是什么。我找到了很多关于声明接口和实现它们的教程,但是它们都在同一个文件中实现了接口和派生类,这不是很真实。导出和导入接口的正确方法是什么?

  • 我正在检查使用JDT的方法的调用,并对其参数执行检查。我正在使用一个 AST 访问者类,该类访问方法调用节点并执行此操作。我在访客类中使用以下方法。 但是作为变量声明一部分的调用没有被访问。 例如:如果我正在寻找方法“createQuery”的调用,将访问以下调用。 但是这个没有被访问。 我怎样才能访问这样的语句并以正确的方式获取参数? 请帮忙。

  • 问题内容: 我需要所有文件中都需要的一些全局变量。 例如,考虑以下4个文件: 考虑到我将上述所有4个文件都加载到HTML文档中,有没有一种方法可以在其中声明3个全局变量并在其他3个文件中的任何一个中访问它们? 有人可以告诉我是否可行,还是可以解决这个问题? 问题答案: 只需在函数范围之外的global.js中定义变量: 为确保此方法有效,您必须先包含/链接到global.js,然后再尝试访问该文件

  • 问题内容: 我想要以下 在启动期间,主进程从文件加载一个大表并将其保存到共享变量中。该表有9列和1200万行,大小为432MB。 工作进程运行HTTP服务器,接受对大表的实时查询。 这是我的代码,显然没有实现我的目标。 我尝试将大表保存到MongoDB中,以便每个进程都可以轻松访问数据。但是表的大小是如此之大,以至于即使有索引,MongoDB仍需要约10秒才能完成我的查询。这太慢了,不能被我的实时