我试图在使用require
初始化的函数中使用new Function
。有没有办法允许字符串中的require语句
// test.js
let fnString = `
const os = require("os");
return os.platform();
`;
const fn = new Function(fnString);
console.log(fn());
运行文件
test.js
:$ node test.js
undefined:4
const os = require("os");
^
ReferenceError: require is not defined
at eval (eval at <anonymous> ({path}/test.js:8:12), <anonymous>:4:12)
at Object.<anonymous> ({path}/test.js:9:13)
与
node
REPL一起成功使用了它:$ node
Welcome to Node.js v14.4.0.
Type ".help" for more information.
> f = new Function(`
const os = require("os");
return os.platform();
`);
> f()
'linux'
>
最佳答案
您可以将require
添加为函数的参数,并将其传递给函数,如下所示:
let fnString = `
const os = require("os");
return os.platform();
`;
const fn = new Function('require', fnString);
console.log(fn(require));
关于node.js - Node.js后端/服务器: Cannot `require` in `new Function` instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62312780/