有没有办法从作为请求参数传递的 String 执行函数并在 node.js 中返回结果?想象一个包含字符串的请求:
"db.users.find()"
作为参数
如果我知道我想执行这个语句,我会这样做:
db.collection('users', function(err, collection) {
collection.find().toArray(function(err, items) {
res.send(items);
});
});
我想要的是类似于解析器的东西,它将执行给定的语句并返回结果。
我试过这样:
exports.execStatement = function(req, res) {
//var statemnet = req.params.statement;
var statement = "collection.find().toArray(function(err, items) {
res.send(items);});";
db.collection('users', function(err, collection) {
eval(statement)
});
};
这段代码给了我错误:
var statement = "collection.find().toArray(function(err, prdel) { ...
SyntaxError: Unexpected token ILLEGAL
怎么了 ?为什么我不能执行存储在 String 中的代码?在此工作之后,我想弄清楚如何执行在请求中作为参数传递的代码。
这种方法甚至可能吗?