eval不能在nodejs下工作
eval如何在nodejs下不起作用?
function show(myVariable) { var myValue = eval(myVariable); console.log(myVariable + "=" + myValue); } var foo = "bar"; show("foo");
在HTML页面上,这将在控制台日志中返回foo=bar
在nodejs控制器中,它给出了SyntaxError: Invalid or unexpected token
这是原始的代码:
"use strict"; var mongoose = require('mongoose'); function show(myVariable) { var myValue = eval(myVariable); console.log(myVariable + "=" + myValue); } exports.messageSave = function(req, callback) { var foo = "bar"; show("foo"); return // a lot of other code below, but put return to focus on the problem }
UPDATE
我在这里要做的是我的show
函数读取被parsing的variables的名称。
你的show
函数不起作用,因为它不能访问foo
定义的作用域。它只能用于全局variables,这可能是你在浏览器中尝试的。
不要做太多的诡计,也不要使用eval
。 传递名称和值( show("foo", foo)
)或对象( show({foo})
– ES6属性简写语法)真的会简单得多。