我对node.js很新,试图按照下面的示例进行操作,但是我的代码存在问题,我无法解决这个问题
示例如果
/ add / 1/1 - >应该显示在第2页
/ add / 2/3 - >应该显示在第5页
/ sub / 1/1 - >应显示在页面0
/ sub / 5/2 - >应该显示在第3页
var http = require('http')
http.createServer(function(req, res){
var parts = req.url.split("/"),
op = parseInt(parts[1]),
a = parseInt(parts[2], 10),
b = parseInt(parts[3], 10);
var result = op ? op(a,b) : "Error";
res.writeHead(200, {'Content-Tybe': 'text/plain'});
res.end("" + result);
}).listen(3000, "127.0.0.1");

答案 0 :(得分:0)
在您的代码op
中不是函数。您必须使用eval(op)
。
可以使用Express
轻松完成其余代码(访问参数)const express = require('express')
const app = express()
app.get('/:op/:firstParam/:secondParam', function (req, res) {
var op = req.params.op
var a = parseInt(req.params.firstParam)
var b = parseInt(req.params.secondParam)
var result = eval(op)(a,b)
res.send('result: ' + result)
})
function sum(a, b) {
return a + b
}
function sub(a, b) {
return a - b
}
app.listen(3000)
(注意:如果您传递foo
之类的不受约束的函数,即http://localhost:3000/foo/8/2,则此示例代码将无效。根据您的eval(op)
调用table1
时添加适当的检查具体需求)