将导入函数添加到导出函数中时出现问题

所以基本上我想要这个块:


const {someFunction} = require("/somePath");

exports.exportedFunction = (req, res) => { someFunction() }

像这个块一样工作:


exports.exportedFunction = (req, res) => {

    const {someFunction} = require("/somePath");

    someFunction();

}

但无需重复导入。如何防止每次导出时重复导入?我想要一个导入,我可以在每个导出中使用该函数,而无需完全导入到导出中。这可能吗?


更新:好的,有一个小更新。我已经做了一个最低要求的问题重现,它看起来像这样:


//index.js

const express = require("express");

const app = express();

const router = require("./router");


exports.exportableStuff = () => {

    return [1,2,3];

};

app.use("/", router);


app.listen(3000, () => {

    console.log("i am listening");

});


//router.js

const express = require("express");

const router = express.Router();

const controller = require("./controller");


router.get("/", controller.testModule);


module.exports = router;


//controller.js

const {exportableStuff} = require("./index");


exports.testModule = (req, res) => {

    console.log("it has been done");

    exportableStuff();

    res.send("<h1>hello, user</h1>");

}

UPDATE2:我实际上自己设法修复了关闭问题。为了使这项工作有效,我实际上所做的是改变这一点:


const {exportableStuff} = require("./index");

进入:


const model = require("./index");

并使用 model.exportableStuff() 调用我的控制器中的函数。问题已正式解决,但如果您有更好的主意,我洗耳恭听。


精慕HU
浏览 93回答 1
1回答

莫回无

根据您的评论,我认为您可能想做以下事情?// index.jsmodule.exports = { someFunction }// router.js// case1const { someFunction } = require("./index.js")someFunction() // it will work// case2const index = require("./index.js")index.someFunction() // it will work但是,如果您想将 someFunction 导出到另一个导出然后使用新函数,您需要这样做。// another.jsconst { someFunction } = require("./index.js")exports.exportedFunction = someFunction// router.jsconst { exportedFunction } = require("./another.js")exportedFunction() // it will work
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript