Node Express.js从单独文件中声明的路由访问变量

Scaraux

我目前正在开发使用很多路线的网站。最初,所有路由都在同一个文件中实现...为了使情况更清楚,我决定创建多个文件,以便使用路由器模块分隔路由...。

例如,在我的users.js文件中,我有:

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});

module.exports = router;

并在我的主要app.js文件中:

app.use('/users', require('./routes/user');

这可以正常工作,但问题是,我希望我的“用户”路由可以在访问之前在app.js文件中声明一些变量。 app.use(...)

我知道我可以使用requiremodule.exports,但是某些变量必须在我的app.js中声明一次,并且必须从我包含的路由中访问它们。

一种

您可以将它们作为配置对象传递。另外,将您的路线更改为返回路线的函数,这样可以获取参数。

module.exports = function (options) {
  return function (req, res, next) {
    // do your thing
    // you have access to options variable as well
  }
}

并在您的主要JS文件中,要求该文件并调用它,然后传递您所需的所有内容。

app.use('/users', require('./routes/user')({
  option1: 'value1',
  option2: 'value2'
}));

对于数据库连接,模型和其他第三方库之类的东西,您无需将它们作为配置对象传递。将它们也移动到外部文件中,并将require它们移动到您的路线文件中也是一个好习惯您需要尽可能地解耦模块。

请记住require,在其余时间,每个模块都会加载一次,它将返回对先前加载的模块的引用。看看这个问题以获取更多信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

node.js + express,路由器在单独的文件和中间件中仅在某些路由之前?

来自分类Dev

app.js中定义的变量是否可以通过Express和node js中的路由功能访问?

来自分类Dev

在app.js中定义的变量是否可以通过Express和node js中的路由功能访问?

来自分类Dev

限制Node JS Express中的api访问

来自分类Dev

Node JS:Express入门

来自分类Dev

是否可以在Node / Express 4.0中声明全局变量

来自分类Dev

是否可以在Node / Express 4.0中声明全局变量

来自分类Dev

node.JS Express护照路由

来自分类Dev

Node.js + Express:指定路由

来自分类Dev

node.JS Express护照路由

来自分类Dev

Node Express 4中的路由器

来自分类Dev

使用Express和Passport JS重定向Node中的路由

来自分类Dev

关于node js express框架中的路由定义

来自分类Dev

如何从function.js中的express和node js访问会话变量

来自分类Dev

在 Javascript 中访问服务器端变量(node.js、express.js、ejs)

来自分类Dev

无法下载 Express Node JS

来自分类Dev

无法使用Express从Node.js请求对象访问文件

来自分类Dev

如何在node.js express中访问我的公用文件夹中的文件

来自分类Dev

Express / Node 中的阻塞问题

来自分类Dev

客户端中的访问服务器变量(node.js + express)

来自分类Dev

node.js / express.js中的变量范围

来自分类Dev

使用Node Express JS下载文件

来自分类Dev

在node.js中内置访问日志(express框架)

来自分类Dev

拒绝访问Node.js Express中的特定目录

来自分类Dev

无法在Node.js / Express中访问请求正文数据

来自分类Dev

在node.js中内置访问日志(express框架)

来自分类Dev

Node.js,Express,Redis-无法调用来自单独模块的路由

来自分类Dev

Node.js,Express,Redis-无法调用来自单独模块的路由

来自分类Dev

如何在Node JS / Express JS Project中读取文件?

Related 相关文章

  1. 1

    node.js + express,路由器在单独的文件和中间件中仅在某些路由之前?

  2. 2

    app.js中定义的变量是否可以通过Express和node js中的路由功能访问?

  3. 3

    在app.js中定义的变量是否可以通过Express和node js中的路由功能访问?

  4. 4

    限制Node JS Express中的api访问

  5. 5

    Node JS:Express入门

  6. 6

    是否可以在Node / Express 4.0中声明全局变量

  7. 7

    是否可以在Node / Express 4.0中声明全局变量

  8. 8

    node.JS Express护照路由

  9. 9

    Node.js + Express:指定路由

  10. 10

    node.JS Express护照路由

  11. 11

    Node Express 4中的路由器

  12. 12

    使用Express和Passport JS重定向Node中的路由

  13. 13

    关于node js express框架中的路由定义

  14. 14

    如何从function.js中的express和node js访问会话变量

  15. 15

    在 Javascript 中访问服务器端变量(node.js、express.js、ejs)

  16. 16

    无法下载 Express Node JS

  17. 17

    无法使用Express从Node.js请求对象访问文件

  18. 18

    如何在node.js express中访问我的公用文件夹中的文件

  19. 19

    Express / Node 中的阻塞问题

  20. 20

    客户端中的访问服务器变量(node.js + express)

  21. 21

    node.js / express.js中的变量范围

  22. 22

    使用Node Express JS下载文件

  23. 23

    在node.js中内置访问日志(express框架)

  24. 24

    拒绝访问Node.js Express中的特定目录

  25. 25

    无法在Node.js / Express中访问请求正文数据

  26. 26

    在node.js中内置访问日志(express框架)

  27. 27

    Node.js,Express,Redis-无法调用来自单独模块的路由

  28. 28

    Node.js,Express,Redis-无法调用来自单独模块的路由

  29. 29

    如何在Node JS / Express JS Project中读取文件?

热门标签

归档