gpt4 book ai didi

javascript - 在 req.params Node 中传入函数名称

转载 作者:行者123 更新时间:2023-12-03 11:40:12 24 4
gpt4 key购买 nike

我有一个名为 helpers.js 的文件,其中包含以下内容

var helpers = {
add: function(a,b){
return a+b;
},
sub: function(a,b){
return a-b;
},
mult: function(a,b){
return a*b;
},
div: function(a,b){
return a/b;
},
math: function(a,b,callback){
return callback(a,b);
}
};

module.exports = helpers;

在我的 app.js 中,我包括

var express = require("express"),
app = express(),
ejs = require("ejs"),
helpers = require("./helpers");

并且我尝试让用户使用以下代码将函数名称作为参数传递:

app.get('/number/:num1/:num2/:operation', function(req,res){

var a = parseInt(req.params.num1);
var b = parseInt(req.params.num2);
var operation = req.params.operation;
var result = helpers.operation(a,b);


res.render('math', {result: result});
});

由于变量操作是一个字符串,因此我收到错误“对象#没有方法'操作'”。有什么办法可以将这个参数转换成函数吗?或者有更好的方法来尝试做到这一点?谢谢!

最佳答案

您可以使用helpers[operation]访问该函数,只需首先确保它是一个有效的函数名称,否则您将得到一个TypeError异常。

var result = helpers[operation](a, b);

关于javascript - 在 req.params Node 中传入函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26318179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com