eval在nodejs下无法正常工作

时间:2017-06-27 22:50:45

标签: javascript node.js eval

为什么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

}

更新

我在这里尝试做的是让我的show函数读取解析给它的变量的名称。

1 个答案:

答案 0 :(得分:1)

您的show函数不起作用,因为它无权访问foo定义的范围。它只适用于全局变量,这可能是您在浏览器中尝试过的。

不要做太多欺骗,也不要使用eval。传递名称和值(show("foo", foo))或对象(show({foo}) - ES6属性的简写语法)真的会简单得多。