node.js - 如何解决节点 js 中的以下要求?
问题描述
由于我是 node js 的新手,所以我想尝试一些关于黑客等级的问题。我能够解决大部分问题,但我陷入了这个问题。
我不知道如何路由这种查询字符串节点 js/
问题是创建一个具有以下要求的简单计算器应用程序。
/cal?func=add&a=20&b=25 -> Get method
-> 这条路线应该添加“a”和“b”的值。预期响应:加法为 45
/cal?func=subtract&a=25&b=20 -> Get method
-> 这条路线应该减去“a”和“b”的值。预期响应:加法为 5
问题要求:
解决方案
如果您使用的是 expressJS,那么简单的方法就是,您只需要获取查询值并进行计算,您可以执行多个 if 来知道要执行哪个函数,或者您可以使用函数映射来完成。在这里,我使用了一个变量 funcMap 来保存属性 add, sub, mul :
const funcMap = {
add: (a, b) => a + b,
sub: (a, b) => a - b,
mul: (a, b) => a * b
}
// using ExpressJS
router.get('/cal', (req,res) => {
const { func, a, b } = req.query;
// you should check if func exist and is valid, same for a and b.
res.send(funcMap[func](+a, +b));
});
// using NodeJS
const url = require('url');
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/html'});
if (req.url === '/cal') {
const { func, a, b } = url.parse(req.url, true).query;
res.write(funcMap[func](+a, +b));
}
res.end();
})
推荐阅读
- kotlin - 如何在 Kotlin 中使用原始类型?
- nginx - Axios 未传递 Content-Type 标头
- powershell - Powershell:如何处理分组对象的值?
- python - 尝试从 XgBoost 显示 SHAP 值时出现 predict() 问题?
- java - 是什么导致了这个 StringIndexOutOfBoundsException?
- c# - 如何在 asp.net 页面上呈现存储在 DB 中的内联表达式?
- python - 为什么当我运行调用 B.exe 的 A.exe 时,由于 B.exe 尝试将其模块查找到 A.exe(调用方)文件夹而不是 B.exe 文件夹(调用)中而失败?
- python - Python 语法说明
- java - 无法使正则表达式正常工作
- javascript - propTypes 对象、字符串和数组有什么问题使得 eslint 有这个规则:react/forbid-prop-types?