: ""),
"<p>Enter numbers to see its fibonacci</p>",
"<form name='fibonacci' action='/fibonacci' method='get'>",
"A: <input type='text' name='a' /><br/>",
"<input type='submit' value='Submit' />",
"</form>"
].join('n'))
);
}
fibo2-node.js
var htutil = require('./htutil');
var math = require('./math');
function sendResult(req, res, a, fiboval){
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(
htutil.page("Fibonacci", htutil.navbar(), [
(!isNaN(fiboval) ?
("<p class='result'>{a} fibonacci = {fibo}</p>"
.replace("{a}", a)
.replace("{fibo}", fiboval))
: ""),
"<p>Enter numbers to see its fibonacci</p>",
"<form name='fibonacci' action='/fibonacci' method='get'>",
"A: <input type='text' name='a' /><br/>",
"<input type='submit' value='Submit' />",
"</form>"
].join('n'))
);
}
exports.get = function(req, res){
if (!isNaN(req.a)){
math.fibonacciAsync(Math.floor(req.a), function(val){
sendResult(req, res, Math.floor(req.a) ,val);
});
}else {
sendResult(req, res, NaN, NaN);
}
}math.js
var factorial = exports.factorial = function(n){
if (n == 0)
return 1;
else
return n * factorial(n-1);
}
var fibonacci = exports.fibonacci = function(n){
if (n === 1)
return 1;
else if (n === 2)
return 1;
else
return fibonacci(n-1) + fibonacci(n-2);
}
var fibonacciAsync = exports.fibonacciAsync = function(n, done){
if (n ==1 || n == 2)
done(1);
else {
process.nextTick(function(){
fibonacciAsync(n-1, function(val1){
process.nextTick(function(){
fibonacciAsync(n-2, function(val2){
done(val1 + val2);
});
})
});
});
}
}

希望本文所述对大家nodejs程序设计有所帮助。









