Node.js“要求”输入数组而不是变量

quhf5bfb  于 2023-01-30  发布在  Node.js
关注(0)|答案(3)|浏览(145)

可以使用var x = require('x.js')并在以后使用x来访问所有有用的东西。构建所需内容数组的最接近方法是什么,例如:

var xs = [require('a.js'), require('b.js')]

然后以xs[0].featurexs[1].feature的形式访问导出的要素?

6ss1mwsb

6ss1mwsb1#

除非你有很好的理由这样做,否则应该避免这样做,但是使用Array.prototype.map()就可以很简单地做到这一点。

var xs = ['foo.js', 'bar.js', 'baz.js'].map(require);
dced5bon

dced5bon2#

也许你可以这样做:

var x = [];
var requiredLibraries = ['a.js', 'b.js', 'c.js'];

requiredLibraries.forEach(function(element, index, array) {
    x.push(require(element));
});

EDIT请注意,我不认为这是一个好主意,因为它可能会带来混乱,降低代码的可读性,如果没有别的。

bf1o4zei

bf1o4zei3#

getRoutes和postRoutes都是.js文件(getRoutes.js和postRoutes.js)
我使用这种方法创建了一个index.js,其中包含我的所有路由。
index.js

const routes = [require("./getRoutes"), require("./postRoutes")];

module.exports = { routes };

// OR

const routes = ["./getRoutes", "./postRoutes"].map(require);

module.exports = { routes };

getRoutes.js和postRoutes.js,它们看起来会像这样

const express = require("express");
const router = express.Router();
const { users } = require("../controllers");

router.post("/user", users);

module.exports = router;

相关问题