在节点js中调用函数内部的函数

问题描述 投票:-5回答:2

我想访问Node js中函数内的函数。下面是我的one.js: -

module.exports.user1 = ()=>{

    updateNewUser:(req,res,next)=>{
        console.log("User1")
    }

}
module.exports.user2 = ()=>{

    updateNewUser:(req,res,next)=>{
        console.log("User2")
    }

}

我在two.js中调用函数: -

var one = require('one.js');
console.log(one.user1.updateNewUser)

我想在one.js中访问updateNewUser。任何帮助,将不胜感激。

javascript node.js
2个回答
0
投票
module.exports = {
    user1: {
        updateNewUser: (req, res, next) => {
            console.log("User1")
        }
    },
    user2: {
        updateNewUser: (req, res, next) => {
            console.log("User2")
        }
    }
}

const one = require('./one.js')
one.user1.updateNewUser(<p1>, <p2>, <p3>)

https://stackblitz.com/edit/js-vrz6t8?file=one.js


0
投票

我建议你把你的one.js改为:

module.exports = {
    user1: (req, res, next) => {
        console.log("User1")
    },
    user2: (req, res, next) => {
        console.log("User2")
    }
};

two.js

let one = require('./one');

one.user1(); //Outputs: User1
one.user2(); //Outputs: User2

这个更干净,但是如果你真的想要一个函数内部的函数,那么:

module.exports = {
    user1: () => {
        return (req, res, next) => { // Added return
            console.log("User1")
        }
    },
    user2: () => {
        return (req, res, next) => { // Added return
            console.log("User2")
        }
    }
};

注意:我添加了一个return关键字,以便我们可以访问内部函数,这是你在one.js中缺少的一件事

你在two.js称它为:

let one = require('./one');

one.user1()(); //Outputs: User1
one.user2()(); //Outputs: User2
© www.soinside.com 2019 - 2024. All rights reserved.