nodejs에 요청 이름으로 해당 메소드를 실행하는 방법이 있습니까?

Java에서는 일반적으로 이름을 사용하여 원하는 클래스를 동적으로 로드하고 해당 메서드를 인스턴스화하고 실행할 수 있으므로 고객의 다양한 요청을 통해 다른 클래스와 메서드를 실행할 수 있으므로 nodejs에 이 기능이 있습니까? 테스트해 보겠습니다. 밖으로. 다음은 koa용 커스텀 미들웨어입니다. 다른 방법을 사용하여 클라이언트 매개변수를 얻을 수도 있습니다. 이것이 핵심은 아닙니다. 핵심은 우리가 원하는 js를 어떻게 동적으로 로드하고, 요청한 매개변수를 통해 해당 js를 실행하는지에 있습니다. client.method.
1. 먼저 이름으로 메소드를 실행하면 이름이 객체로 변환됩니다. 예를 들어 수신된 이름은 show이고 eval(name)을 사용하여 문자열 show를 객체로 변환한 다음 fun() 메소드를 실행해야 합니다.

2. 해당 js 파일을 이름으로 참조하는 방법은 require를 통해서인데, require는 문자열의 경로와 js 파일의 이름을 통해 해당 js 파일을 로드할 수 있습니다.

const myMiddleWare = async(ctx,next) => {
    
    
    console.log(ctx.request.query.name);
    
    
    let name = ctx.request.query.name;
    console.log(name+"=====22");
    let fun = eval(name);
    
    fun("這是一個方法");
    ctx.body = "這是一個中間件測試";

    const path = '../test/One';
    const show1 = require(path);
    console.log("============================");
    show1();
    await next();
}
const showName = ()=>{
    
    
    console.log("=====這是一個");
}
module.exports = showName;

eval() 함수: eval()은 문자열 str을 매개변수로 허용하고 이 매개변수를 스크립트 코드로 실행할 수 있습니다.

추천

출처blog.csdn.net/weixin_36557877/article/details/129296864