Javascript 如何导入可能有语法错误的模块?
我有两个脚本Javascript 如何导入可能有语法错误的模块?,javascript,node.js,express,require,Javascript,Node.js,Express,Require,我有两个脚本a.js&b.jsb.js中可能有语法错误。我该怎么解释呢 a.js let codeForRunning = require('b.js'); try { resultOfCode = codeForRunning.func(TEST); } catch (err) { resultOfCode = err } function myFunction (argument) { return 'Hello world } module.exports =
a.js
&b.js
b.js
中可能有语法错误。我该怎么解释呢
a.js
let codeForRunning = require('b.js');
try {
resultOfCode = codeForRunning.func(TEST);
}
catch (err) {
resultOfCode = err
}
function myFunction (argument) {
return 'Hello world
}
module.exports = { func: saveWrittenCode }
b.js
let codeForRunning = require('b.js');
try {
resultOfCode = codeForRunning.func(TEST);
}
catch (err) {
resultOfCode = err
}
function myFunction (argument) {
return 'Hello world
}
module.exports = { func: saveWrittenCode }
您可以在try/catch块上要求模块:
试试看{
常数b=要求('./b');
//代码
}捕捉(错误){
log('无法加载模块b');
}
另一种方法是将模块作为文本加载,并在运行时进行计算:
const fs=require('fs');
const b=fs.readFileSync('./b.js','utf8');
试一试{
评估常数=评估值(b);
//代码
}捕捉(错误){
log('无法加载模块b');
}
Obs:确保您要评估的代码是可信的,否则您将容易受到远程代码执行的攻击