国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

從零開始學習Node.js系列教程四:多頁面實現的數學運算示例

2019-11-19 16:50:21
字體:
來源:轉載
供稿:網友

本文實例講述了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){  res.writeHead(200, {'Content-Type': 'text/html'});  var result = req.a * req.a;  res.end(    htutil.page("Square", htutil.navbar(), [      (!isNaN(req.a) ?        ("<p class='result'>{a} squared = {sq}</p>"          .replace("{a}", req.a)          .replace("{sq}", req.a * req.a))        : ""),      "<p>Enter numbers to see its square</p>",      "<form name='square' action='/square' method='get'>",      "A: <input type='text' name='a' /><br/>",      "<input type='submit' value='Submit' />",      "</form>"    ].join('/n'))  );}

factorial-node.js

var htutil = require('./htutil');var math = require('./math');exports.get = function(req, res){  res.writeHead(200, {'Content-Type': 'text/html'});  res.end(    htutil.page("Factorial", htutil.navbar(), [      (!isNaN(req.a) ?        ("<p class='result'>{a} factorial = {fact}</p>"          .replace("{a}", req.a)          .replace("{fact}", math.factorial(Math.floor(req.a))))        : ""),      "<p>Enter numbers to see its factorial</p>",      "<form name='factorial' action='/factorial' method='get'>",      "A: <input type='text' name='a' /><br/>",      "<input type='submit' value='Submit' />",      "</form>"    ].join('/n'))  );}

mult-node.js

var htutil = require('./htutil');exports.get = function(req, res){  res.writeHead(200, {'Content-Type': 'text/html'});  var result = req.a * req.b;  res.end(    htutil.page("Multiplication", htutil.navbar(), [      (!isNaN(req.a) && !isNaN(req.b) ?        ("<p class='result'>{a} * {b} = {result}</p>"          .replace("{a}", req.a)          .replace("{b}", req.b)          .replace("{result}", req.a * req.b))        : ""),      "<p>Enter numbers to mutiply</p>",      "<form name='mult' action='/mult' method='get'>",      "A: <input type='text' name='a' /><br/>",      "B: <input type='text' name='b' /><br/>",      "<input type='submit' value='Submit' />",      "</form>"    ].join('/n'))  );}

fibo-node.js

var htutil = require('./htutil');var math = require('./math');exports.get = function(req, res){  res.writeHead(200, {'Content-Type': 'text/html'});  res.end(    htutil.page("Fibonacci", htutil.navbar(), [      (!isNaN(req.a) ?        ("<p class='result'>{a} fibonacci = {fibo}</p>"          .replace("{a}", Math.floor(req.a))          .replace("{fibo}", math.fibonacci(Math.floor(req.a))))        : ""),      "<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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中方县| 鸡西市| 屯门区| 沾益县| 马关县| 色达县| 潜山县| 临邑县| 大洼县| 庆云县| 灌阳县| 澄迈县| 深圳市| 栖霞市| 安庆市| 扎赉特旗| 乌拉特中旗| 五峰| 江华| 扎兰屯市| 收藏| 印江| 临颍县| 郑州市| 锦屏县| 肇源县| 澳门| 沿河| 南岸区| 巨野县| 涡阳县| 海伦市| 买车| 周口市| 景东| 保康县| 望谟县| 新巴尔虎左旗| 凤庆县| 和林格尔县| 大邑县|