node.js计算子网址号

时间:2018-02-12 23:23:56

标签: javascript node.js reactjs

我对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");




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时添加适当的检查具体需求)