【问题标题】:How do you import a module that may have syntax errors in it?如何导入可能有语法错误的模块?
【发布时间】:2020-12-21 20:47:28
【问题描述】:

我有两个脚本a.jsb.jsb.js 可能有语法错误。我该如何解释?

a.js

let codeForRunning = require('b.js');

try {
    resultOfCode = codeForRunning.func(TEST);
}
catch (err) {
    resultOfCode = err
}

b.js

function myFunction (argument) {
    return 'Hello world
}

module.exports = { func: saveWrittenCode }

【问题讨论】:

    标签: javascript node.js express require


    【解决方案1】:

    你可以在 try/catch 块上 require 模块:

    try {
        const b = require('./b');
        // Code
    } catch (err) {
       console.log('Module b could not be loaded');
    }
    
    

    另一种选择是将模块作为文本加载并在运行时进行评估:

    const fs = require('fs');
    
    const b = fs.readFileSync('./b.js', 'utf8');
    
    try {
        const evaluated = eval(b);
        // Code
    } catch (err) {
       console.log('Module b could not be loaded');
    }
    

    Obs:确保您将评估的代码是可信的,否则您将容易受到远程代码执行的攻击

    【讨论】:

      猜你喜欢
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 2021-02-06
      • 2021-10-31
      • 2018-11-01
      • 2021-12-07
      • 1970-01-01
      • 2015-03-29
      相关资源
      最近更新 更多