从零开始学习Node.js系列教程四:多页面实现的数学运算示例

2020-06-17 07:04:31易采站长站整理

本文实例讲述了Node.js多页面实现的数学运算。分享给大家供大家参考,具体如下:

app-node.js


var http_port = 3000;
var http = require('http');
var htutil = require('./htutil');
var server = http.createServer(function(req, res){
htutil.loadParams(req, res, undefined);
if (req.requrl.pathname === '/'){
require('./home-node').get(req, res);
}else if (req.requrl.pathname === '/square'){
require('./square-node').get(req, res);
}else if (req.requrl.pathname === '/factorial'){
require('./factorial-node').get(req, res);
}else if (req.requrl.pathname === '/fibonacci'){
require('./fibo-node').get(req, res);
}else if (req.requrl.pathname === '/mult'){
require('./mult-node').get(req, res);
}else{
res.writeHead(404, {'Content-Type': 'text/plain'});
res.end("bad URL" + req.url);
}
});
server.listen(http_port);
console.log('listening to http://localhost:3000');

htutil.js


var url = require('url');
exports.loadParams = function(req, res, next){
req.requrl = url.parse(req.url, true);
req.a = (req.requrl.query.a && !isNaN(req.requrl.query.a))
? new Number(req.requrl.query.a)
: NaN;
req.b = (req.requrl.query.b && !isNaN(req.requrl.query.b))
? new Number(req.requrl.query.b)
: NaN;
if(next) next();
}
exports.navbar = function(){
return ["<div class='navbar'>",
"<p><a href='/'>home</a></p>",
"<p><a href='/mult'>Multiplication</a></p>",
"<p><a href='/square'>Square</a></p>",
"<p><a href='/factorial'>Factorial</a></p>",
"<p><a href='/fibonacci'>Fibonacci</a></p>",
"</div>"].join('n');
}
exports.page = function(title, navbar, content){
return ["<html><head><title>{title}</title></head>",
"<body><h1>{title}</h1>",
"<table><tr>",
"<td>{navbar}</td><td>{content}</td>",
"</tr></table></body></html>"
].join('n')
.replace(new RegExp("{title}", "gm"), title)
.replace("{navbar}", navbar)
.replace("{content}", content);
}

home-node.js


var htutil = require('./htutil');
exports.get = function(req, res){
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(htutil.page("Math Wizard", htutil.navbar(), "<p>Math Wizard</p>"));
}

square-node.js


var htutil = require('./htutil');
exports.get = function(req, res){