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



下面是我的测试节点.js使用express和mathjs包的代码。只是添加从 url 收到的两个数字。我尝试了"parseInt","Number",但没有运气从本地主机: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);

实际问题是只在resp.send中传递一个数字。引用文档,

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

。 ...

当给出的数字没有任何前面提到的正文时,将为您分配一个响应正文字符串。

因此,当您简单地传递一个数字时,express 框架会将其假定为 HTTP 状态代码,并将其与预定义的响应正文(对于已知的响应代码)一起返回。若要确认这一点,请尝试从应用程序中返回 404。默认情况下,它会说 Not Found .

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

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

最新更新