Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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 是否可以选择在不使用eval或safe eval的情况下评估nodejs中的值?_Node.js_Npm_Eval - Fatal编程技术网

Node.js 是否可以选择在不使用eval或safe eval的情况下评估nodejs中的值?

Node.js 是否可以选择在不使用eval或safe eval的情况下评估nodejs中的值?,node.js,npm,eval,Node.js,Npm,Eval,我试图在javascript中创建一个与eval具有相同行为的函数,因为它没有safe eval npm包那么安全。当我尝试使用安全评估库而不是评估库时,它不支持很多函数,例如,开关等,所以它给我错误信息 SyntaxError:如果发生错误,则意外标记 所以我试着为同样的代码编写代码,但也面临一些问题 是否有人知道如何使用安全评估来执行条件,或者是否有人知道如何编写类似的自定义函数/方法来实现相同的目标 谢谢 参见文档:添加了重点 目前,它仅适用于Node.js,JavaScript代码必须是

我试图在javascript中创建一个与eval具有相同行为的函数,因为它没有safe eval npm包那么安全。当我尝试使用安全评估库而不是评估库时,它不支持很多函数,例如,开关等,所以它给我错误信息

SyntaxError:如果发生错误,则意外标记

所以我试着为同样的代码编写代码,但也面临一些问题

是否有人知道如何使用安全评估来执行条件,或者是否有人知道如何编写类似的自定义函数/方法来实现相同的目标


谢谢

参见文档:添加了重点

目前,它仅适用于Node.js,JavaScript代码必须是一个表达式,其计算结果必须是一个值

if是一个语句,而不是一个表达式


您可以通过将语句包装在表达式中来计算语句。

请参阅文档:emphasis added

目前,它仅适用于Node.js,JavaScript代码必须是一个表达式,其计算结果必须是一个值

if是一个语句,而不是一个表达式

您可以将语句包装在表达式中,使其对语句进行求值。

输入说明:

JavaScript代码必须是计算为值的表达式

如果。。。{…}是一个语句,不是表达式

这里的简单解决方案已经在同一个NPM页面上的文档中提出了:将语句封装在您立即调用的函数表达式中

var code = '(function square(b) { return b * b; })(5)'
var evaluated = safeEval(code)
您可以在该函数中放入任何内容,包括语句:

var code = '(function square(b) { if(b === 5) { return "yes"; } else { return 0; } })(5)'
var evaluated = safeEval(code)
输入的名称是:

JavaScript代码必须是计算为值的表达式

如果。。。{…}是一个语句,不是表达式

这里的简单解决方案已经在同一个NPM页面上的文档中提出了:将语句封装在您立即调用的函数表达式中

var code = '(function square(b) { return b * b; })(5)'
var evaluated = safeEval(code)
您可以在该函数中放入任何内容,包括语句:

var code = '(function square(b) { if(b === 5) { return "yes"; } else { return 0; } })(5)'
var evaluated = safeEval(code)

既然你在问nodejs,为什么你需要评估任何东西呢?需要您控制的代码,永远不要信任您不信任的代码,当然也不要在您的nodejs进程的完全权限下运行它。除非您自己在显式需要的普通文件中显式编写并调用,否则永远不可能执行类似于fs.readdirSync\uuuu DIRNAME\uuuuuu.forEachfs.unLink的操作。你在做什么,你认为你需要按需评估?既然你在问nodejs,为什么你需要评估任何东西?需要您控制的代码,永远不要信任您不信任的代码,当然也不要在您的nodejs进程的完全权限下运行它。除非您自己在显式需要的普通文件中显式编写并调用,否则永远不可能执行类似于fs.readdirSync\uuuu DIRNAME\uuuuuu.forEachfs.unLink的操作。你在做什么,你认为你需要按需评估?