Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js后端/服务器:无法在“新函数”实例中使用“require”_Node.js_Error Handling - Fatal编程技术网

Node.js后端/服务器:无法在“新函数”实例中使用“require”

Node.js后端/服务器:无法在“新函数”实例中使用“require”,node.js,error-handling,Node.js,Error Handling,我试图在用新函数初始化的函数中使用require。是否有一种方法允许在字符串中使用require语句 //test.js 设fn字符串=` 常数os=要求(“os”); 返回os.platform(); `; const fn=新函数(fnString); console.log(fn()); 正在运行文件test.js: $node test.js 未定义:4 常数os=要求(“os”); ^ ReferenceError:未定义require at eval(eval at({path}/

我试图在用
新函数
初始化的函数中使用
require
。是否有一种方法允许在字符串中使用require语句

//test.js
设fn字符串=`
常数os=要求(“os”);
返回os.platform();
`;
const fn=新函数(fnString);
console.log(fn());
正在运行文件test.js:

$node test.js
未定义:4
常数os=要求(“os”);
^
ReferenceError:未定义require
at eval(eval at({path}/test.js:8:12),:4:12)
反对。({path}/test.js:9:13)
已成功使其与
节点一起工作
REPL:

$node
欢迎使用Node.jsv14.4.0。
键入“.help”以获取更多信息。
>f=新函数(`
常数os=要求(“os”);
返回os.platform();
`);
>f()
“linux”
>

您可以将
require
作为参数添加到函数中,并将其传递给函数,如下所示:

let fnString = `
const os = require("os");
return os.platform();
`;

const fn = new Function('require', fnString);
console.log(fn(require));

您能否使用var将require声明为全局函数并进行尝试…现在我得到以下错误:
TypeError:require不是函数
忘记在函数调用中传递
require
。这确实管用!