最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

我如何在expressjs路由之间共享功能?

IT培训 admin 13浏览 0评论

我如何在expressjs路由之间共享功能?

假设我的expresjss项目中有两条路线:users.js和profiles.js。

users.js:

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

/* GET users listing. */
router.get('/', function(req, res, next) {
  var extra = something_nice();
  res.json( { three: 'four', extra: extra } );
});

module.exports = router;

profiles.js:

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

/* GET profiles listing. */
router.get('/', function(req, res, next) {
  var extra = something_nice();
  res.json( { one: 'two', extra: extra } );
});

module.exports = router;

请注意,我在那里有something_nice()方法,如果这是常规的OOP,例如rails控制器,那么理想情况下,我将在'super class'中定义该方法。

我如何使用node + expressjs做到这一点?我的假设是我应该创建一个新模块,并在此处要求它,但这是最佳实践吗?

回答如下:

您以相同的方式解决它。使用课程:

class SomethingCool {
  somethingNice() {
    return 'cool!';  
  }
}

module.exports = SomethingCool;

在您的路线上:

var express = require('express');
var router = express.Router();
var SomethingCool = require('./something-cool.class');

const something = new SomethingCool();

/* GET profiles listing. */
router.get('/', function(req, res, next) {
  var extra = something.somethingNice();
  res.json( { one: 'two', extra: extra } );
});

module.exports = router;

无论语言如何,都应应用相同的原则(只要它们支持类或类对象)。

而且您在这里甚至都不需要上课:

function somethingNice() {
  // some logic
}

// inside file1
router.get('/', (req, res, next) => {
  const extra = somethingNice();
  res.json({ one: 'two', extra });
});

您可以在需要/需要的地方重复使用功能,只需确保已使用module.exports将它们导出(如果在其他文件/模块中使用)。

有时间请仔细阅读:

  • https://dev.to/santypk4/bulletproof-node-js-project-architecture-4epf

它也许可以回答您以后在不同领域中有关设计,结构和重用逻辑的一些问题。

我如何在expressjs路由之间共享功能?

假设我的expresjss项目中有两条路线:users.js和profiles.js。

users.js:

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

/* GET users listing. */
router.get('/', function(req, res, next) {
  var extra = something_nice();
  res.json( { three: 'four', extra: extra } );
});

module.exports = router;

profiles.js:

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

/* GET profiles listing. */
router.get('/', function(req, res, next) {
  var extra = something_nice();
  res.json( { one: 'two', extra: extra } );
});

module.exports = router;

请注意,我在那里有something_nice()方法,如果这是常规的OOP,例如rails控制器,那么理想情况下,我将在'super class'中定义该方法。

我如何使用node + expressjs做到这一点?我的假设是我应该创建一个新模块,并在此处要求它,但这是最佳实践吗?

回答如下:

您以相同的方式解决它。使用课程:

class SomethingCool {
  somethingNice() {
    return 'cool!';  
  }
}

module.exports = SomethingCool;

在您的路线上:

var express = require('express');
var router = express.Router();
var SomethingCool = require('./something-cool.class');

const something = new SomethingCool();

/* GET profiles listing. */
router.get('/', function(req, res, next) {
  var extra = something.somethingNice();
  res.json( { one: 'two', extra: extra } );
});

module.exports = router;

无论语言如何,都应应用相同的原则(只要它们支持类或类对象)。

而且您在这里甚至都不需要上课:

function somethingNice() {
  // some logic
}

// inside file1
router.get('/', (req, res, next) => {
  const extra = somethingNice();
  res.json({ one: 'two', extra });
});

您可以在需要/需要的地方重复使用功能,只需确保已使用module.exports将它们导出(如果在其他文件/模块中使用)。

有时间请仔细阅读:

  • https://dev.to/santypk4/bulletproof-node-js-project-architecture-4epf

它也许可以回答您以后在不同领域中有关设计,结构和重用逻辑的一些问题。

发布评论

评论列表 (0)

  1. 暂无评论