下面是我使用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);
答案 0 :(得分:0)
实际问题是只传递resp.send
中的数字。引自文档,
res.send([body | status],[body])
... ...
当给出一个没有任何前面提到的实体的数字时,会为你分配一个响应主体字符串。
因此,当您只是传递一个数字时,表示框架会将其视为HTTP状态代码,并使用预定义的响应主体(对于已知的响应代码)返回它。要确认这一点,请尝试从您的应用程序返回404。默认情况下,它会显示Not Found
。
要解决此问题,您需要将数字转换为字符串,例如
resp.send((1).toString());