Node.js输出到控制台正常但不通过服务器响应

时间:2014-03-04 07:53:42

标签: javascript node.js

下面是我使用express和mathjs包测试node.js的代码。只是添加了从网址收到的两个号码。我尝试了“parseInt”,“Number”,但在从localhost:3000获取resp.send的输出时没有运气。服务器页面只显示一个空白页面。

我在这里做错了吗?

var express = require('express');
var mathjs = require('mathjs');

var app = express();
var math = mathjs();

app.get('/app/arithmetic/range/:value1,:value2', function(req, resp) {
    var val1 = Number(req.params.value1);
    var val2 = Number(req.params.value2);
    var sum = math.add(val1,val2);
    console.log(sum);
    resp.send(sum);
});

app.listen(3000);

更新:已解决问题。我试图输出一个整数,由于某种原因表达不喜欢。所以我将 resp.send(sum); 设为 resp.send(sum.toString()); 并且它有效。替代方式可以是 resp.send(''+ sum);

1 个答案:

答案 0 :(得分:0)

实际问题是只传递resp.send中的数字。引自文档,

  

res.send([body | status],[body])

     

...   ...

     

当给出一个没有任何前面提到的实体的数字时,会为你分配一个响应主体字符串。

因此,当您只是传递一个数字时,表示框架会将其视为HTTP状态代码,并使用预定义的响应主体(对于已知的响应代码)返回它。要确认这一点,请尝试从您的应用程序返回404。默认情况下,它会显示Not Found

要解决此问题,您需要将数字转换为字符串,例如

resp.send((1).toString());