我有一个接收API调用的node.js restful服务器
let method = request.query.method;
我设置了可用API列表
enum apis {
api_name_1,
api_name_2
}
我想将我获得的方法切换到可用的API
switch (method) {
case apis.api_name_1:
response.send("You asked for api 1");
break;
case apis.api_name_2:
response.send("You asked for api 2");
break;
default:
response.send("This method is not supported: " + method);
break;
}
当调用这样的API:api / process?method = api_name_2时,node.js接收为" api_name_2" (作为字符串),而apis.api_name_2等于1(枚举)。如何将api的名称转换为"可读" node.js的api代码?
由于
答案 0 :(得分:1)
我不确定你想通过枚举部分实现什么。另外,在进行比较时,您只需比较开关案例中的字符串
即可这是代码
var express = require('express')
var app = express()
app.get('/api/process', function(req, res) {
let method = req.query.method;
console.log(method)
switch (method) {
case 'apis.api_name_1':
res.send("You asked for api 1");
break;
case 'apis.api_name_2':
res.send("You asked for api 2");
break;
default:
res.send("This method is not supported: " + method);
break;
}
})
app.listen(3000, function() {
console.log('Magic begins on port 3000!')
})
已编辑的代码
我已经更新到下面的代码,因为现在枚举不是JS的原生,而enum
是JS中的保留字,我用对象替换了你的enum实现。
var express = require('express')
var app = express()
var apiEnum = {
api_name_1: 'apis.api_name_1',
api_name_2: 'apis.api_name_2'
};
app.get('/api/process', function(req, res) {
let method = req.query.method;
console.log(method)
switch (method) {
case apiEnum.api_name_1:
res.send("You asked for api 1");
break;
case apiEnum.api_name_2:
res.send("You asked for api 2");
break;
default:
res.send("This method is not supported: " + method);
break;
}
})
app.listen(3000, function() {
console.log('Magic begins on port 3000!')
})
现在,如果点击http://localhost:3000/api/process?method=apis.api_name_2
,您将获得所需的结果
答案 1 :(得分:0)
您可以使用属性访问权限运算符[]
从this question code = apis[method];
中提到的字符串中获取值。