精慕HU
2023-07-20 16:09:05
所以基本上我想要這個塊:const {someFunction} = require("/somePath");exports.exportedFunction = (req, res) => { someFunction() }像這個塊一樣工作:exports.exportedFunction = (req, res) => { const {someFunction} = require("/somePath"); someFunction();}但無需重復(fù)導(dǎo)入。如何防止每次導(dǎo)出時重復(fù)導(dǎo)入?我想要一個導(dǎo)入,我可以在每個導(dǎo)出中使用該函數(shù),而無需完全導(dǎo)入到導(dǎo)出中。這可能嗎?更新:好的,有一個小更新。我已經(jīng)做了一個最低要求的問題重現(xiàn),它看起來像這樣://index.jsconst 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.jsconst express = require("express");const router = express.Router();const controller = require("./controller");router.get("/", controller.testModule);module.exports = router;//controller.jsconst {exportableStuff} = require("./index");exports.testModule = (req, res) => { console.log("it has been done"); exportableStuff(); res.send("<h1>hello, user</h1>");}UPDATE2:我實際上自己設(shè)法修復(fù)了關(guān)閉問題。為了使這項工作有效,我實際上所做的是改變這一點:const {exportableStuff} = require("./index");進入:const model = require("./index");并使用 model.exportableStuff() 調(diào)用我的控制器中的函數(shù)。問題已正式解決,但如果您有更好的主意,我洗耳恭聽。
1 回答

莫回?zé)o
TA貢獻1865條經(jīng)驗 獲得超7個贊
根據(jù)您的評論,我認為您可能想做以下事情?
// index.js
module.exports = { someFunction }
// router.js
// case1
const { someFunction } = require("./index.js")
someFunction() // it will work
// case2
const index = require("./index.js")
index.someFunction() // it will work
但是,如果您想將 someFunction 導(dǎo)出到另一個導(dǎo)出
然后使用新函數(shù),您需要這樣做。
// another.js
const { someFunction } = require("./index.js")
exports.exportedFunction = someFunction
// router.js
const { exportedFunction } = require("./another.js")
exportedFunction() // it will work
添加回答
舉報
0/150
提交
取消