有没有办法从作为请求参数传递的String执行函数并在node.js中返回结果? 想象一下包含String的请求:
"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中的代码?在此工作之后,我想弄清楚如何执行在请求中作为参数传递的代码。
这种方法甚至可能吗?
答案 0 :(得分:0)
第二个示例显示了如何向db添加函数。
http://mongodb.github.com/node-mongodb-native/api-generated/db.html#eval
但不要。
有三个主要原因