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属性简写语法)真的会简单得多。