【发布时间】:2021-11-24 21:12:53
【问题描述】:
const http = require('http');
const fs = require('fs');
const url = require('url');
const hostname = 'xxxx';
const port = xxxx;
const server = http.createServer((req, res) => {
let parsedUrl = url.parse(req.url, true);
var qdata = parsedUrl.query;
let n = parseInt(qdata.n);
console.log(n);
if (n <= 0) {
res.writeHeader(500, {
'Content-Type': 'text/plain',
});
res.write("Fuer n wurde kein gueltiger Parameter uebergeben!");
}
else {
res.writeHeader(200, {
'Content-Type': 'text/plain',
});
function fibonacci(num) {
if (num <= 1) return 1;
return fibonacci(num - 1) + fibonacci(num - 2);
}
res.write("Die " + n + "-te Fibonacci Zahl lautet " + fibonacci(n));
}
res.end();
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
如果我运行此代码,我会收到错误 RangeError:超出最大调用堆栈大小。但为什么?它发生在我用 9 调用它时,斐波那契在这么小的数字上应该不是问题。
【问题讨论】:
-
嗨,您似乎缺少一些代码(我收到语法错误)
-
用 1 调用它会发生什么? (你怎么称呼它?)
-
你输入的num是什么值?
-
事情是这样的:当我第一次调用它时,它显示了正确的值。但如果我再试一次,我就会得到错误。
标签: javascript node.js