宝哥软件园

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

编辑:宝哥软件园 来源:互联网 时间:2021-09-05

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

app-node.js

var http _ port=3000 var http=require(' http ');var htutil=require(' ./htu til ');var服务器=http。createserver(function(req,res){ htutil.loadParams(req,res,undefined));如果(请求。请求网址。pathname=='/'){ require(' ./home-node ').get(req,RES);} else if(req。请求网址。pathname=='/' square '){ require(' ./方形节点').get(req,RES);} else if(req。请求网址。路径名=='/阶乘){ require ' ./阶乘-节点')。get(req,RES);} else if(req。请求网址。pathname=='/斐波那契'){ require ' ./fibo-node ').get(req,RES);} else if(req。请求网址。pathname=='/mult '){ require ' ./多节点').get(req,RES);}else{ res.writeHead(404,{ ' Content-Type ' : ' text/plain ' });res.end('错误的网址请求。网址);}});服务器。侦听(http _ port);console.log('监听http://localhost :3000’);htutil.js

var URL=必选(' URL ');出口。loadparams=function(req,res,next){ req。请求网址=网址。解析(请求。网址,真);req.a=(req.requrl.query.a!isNaN(req.requrl.query.a))?新号码(请求。请求网址。查询。a): NAn;req.b=(req.requrl.query.b!isNaN(req.requrl.query.b))?新号码(请求。请求网址。查询。b): NAn;if(next)next();}出口。nav bar=function(){ return[' div class=' nav bar ',' pa href='/'home/a/p ',' pa href='/mult '乘法/a/p ',' pa href='/square'Square/a/p ',' pa href='/阶乘'阶乘/a/p ',' pa href='/斐波那契'斐波那契/a/p ','/div'].联接(' n ');}exports.page=function(title,navbar,content){ return[' html head title { title }/title/head ',' bodyh1{title}/h1 ',' tabletr ',' td{navbar}/tdtd{content}/td ','/tr/table/body/html' ].联接(' n ').替换(新的正则表达式(“{title}”、“gm”),标题)。替换(“{navbar}”,navbar).替换(“{content}”,内容);}home-node.js

var htutil=require(' ./htu til ');exports.get=function(req,res){ res.writeHead(200,{ ' Content-Type ' : ' text/html ' });res.end(htutil.page('数学向导,htutil.navbar(),' pMath向导/p ');}方形节点。射流研究…

var htutil=require(' ./htu til ');exports.get=function(req,res){ res.writeHead(200,{ ' Content-Type ' : ' text/html ' });var结果=req。a *请求。a;res.end(htutil.page('Square ',htutil.navbar(),[(!isNaN(req.a)?(“p类="结果“{a}”的平方={sq}/p .替换(“{a}”,req.a).替换(' {sq} ',req.a * req.a)) : ' '),' pEnter数字以查看其square/p ',' form name=' square ' action='/square '方法=' get ',' a :输入类型=' text ' name=' a '/br/','输入类型=' Submit '值=' Submit ','/form' ].join(' n ');}阶乘-node.js

var htutil=require(' ./htu til ');var math=require(' ./math’);exports.get=function(req,res){ res.writeHead(200,{ ' Content-Type ' : ' text/html ' });res.end(htutil.page('阶乘,htutil.navbar(),[(!isNaN(req.a)?(“p类="结果“{a}阶乘={ fact }/p } .替换(“{a}”,req.a).替换(“{fact}”、数学。阶乘(数学。发言权(请求。a))))): ' '),'戊烯数以查看其阶乘/p '、form name=' factorial ' action='/factorial ' method=' get '、A:输入类型='text' name='a' /br/',input type=' Submit ' value=' Submit '/',/form' ].join(' n ');}多节点。射流研究…

var htutil=require(' ./htu til ');exports.get=function(req,res){ res.writeHead(200,{ ' Content-Type ' : ' text/html ' });var结果=req。a *请求。b;res.end(htutil.page('乘法,htutil.navbar(),[(!isNaN(req.a)!isNaN(req.b)?(“p类="结果“{ a } * { b }={ result }/p }).替换(“{a}”,req.a).替换(' {b} ',req.b .).替换(' {result} ',req.a * req.b)) : ' '),' pEnter要相乘的数字/p ','表单名称=' mult ' action='/mult ' method=' get ',' A:输入类型='text '名称='b' /br/',输入类型=' Submit '值=' Submit ','/form' ].join(' n ');}fibo-node.js

var htutil=require(' ./htu til ');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类="结果“{a}斐波那契={斐波那契}/p }).替换(' {a} ',数学. floor(req.a)).替换(“{fibo}”,数学。斐波那契(数学。发言权(请求。a)))): ' '),'戊烯数查看其斐波那契/p ','表单名称='斐波那契'动作='/斐波那契'方法=' get ',' A:输入类型='text '名称='a' /br/',输入类型=' Submit '值=' Submit '/,'/form' ].join(' n ');}fibo2-node.js

var htutil=require(' ./htu til ');var math=require(' ./math’);函数sendResult(req,res,a,fiboval){ res.writeHead(200,{ ' Content-Type ' : ' text/html ' });res.end(htutil.page('Fibonacci ',htutil.navbar(),[(!isNaN(fiboval)?(“p类="结果“{a}斐波那契={斐波那契}/p }).替换(“{a}”,a).替换(' {fibo} ',fiboval)) : ' '),' pEnter数字以查看其斐波那契/p ','表单名称='斐波那契'动作='/斐波那契'方法=' get ',' A:输入类型='text '名称='a' /br/',输入类型=' Submit '值=' Submit '/,'/form' ].join(' n ');}exports.get=function(req,res){ if(!isNaN(请求。a)){数学。fibonacciasync(Math . floor(req . a),function(val){ sendResult(req,res,Math。发言权(请求。a)、val);});}else { sendResult(req,res,NaN,NAn);}}math.js

定义变量阶乘=出口。阶乘=函数(n){ if (n==0)返回1;否则返回n *阶乘(n-1);} var Fibonacci=exports。斐波那契=函数(n){ if(n===1)返回1;否则if (n===2)返回1;否则返回斐波那契(n-1)斐波那契(n-2);} var Fibonacciasync=exports。Fibonacciasync=函数(n,done){ if(n==1 | | n==2)done(1);else { process。next tick(function(){ Fibonacciasync(n-1,function(val 1){ process }。next tick(function(){ Fibonacciasync(n-2),function(val 2){ done(val 1 val 2);});}) });});} }

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

更多资讯
游戏推荐
更多+