從零開(kāi)始學(xué)習(xí)Node.js系列教程四:多頁(yè)面實(shí)現(xiàn)數(shù)學(xué)運(yùn)算的client端和server端示例
本文實(shí)例講述了Node.js多頁(yè)面實(shí)現(xiàn)數(shù)學(xué)運(yùn)算的client端和server端。分享給大家供大家參考,具體如下:
1、server端
支持?jǐn)?shù)學(xué)運(yùn)算的服務(wù)器,服務(wù)器的返回結(jié)果用json對(duì)象表示。
math-server.js
//通過(guò)監(jiān)聽(tīng)3000端口使其作為Math Wizard的后臺(tái)程序 var math = require('../nodejsExample3/math.js'); var express = require('express'); var app = express(); app.configure(function(){ app.use(app.router); //默認(rèn)的錯(cuò)誤處理函數(shù),顯示棧軌跡 //如果要顯示用戶友好的錯(cuò)誤,app.err(function(err, req, res, next){ // res.send(error page); //or res.render('template'); // }); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.get('/fibonacci/:n', function(req, res, next){ math.fibonacciAsync(Math.floor(req.params.n), function(val){ res.send({n: req.params.n, result: val}); }) }); app.get('/factorial/:n', function(req, res, next){ res.send({n: req.params.n, result: math.factorial(Math.floor(req.params.n))}); }); app.get('/mult/:a/:b', function(req, res, next){ res.send({a: req.params.a, b: req.params.b, result: req.params.a * req.params.b}); }); app.get('/square/:a', function(req, res, next){ res.send({a: req.params.a, result: req.params.a * req.params.a}); }); app.listen(3000);
測(cè)試結(jié)果:
2、client端
http.request方法會(huì)創(chuàng)建一個(gè)HTTP請(qǐng)求,并將URL元素分割到參數(shù)對(duì)象中,res.on語(yǔ)句里聲明的回調(diào)函數(shù)會(huì)在HTTP相應(yīng)數(shù)據(jù)到達(dá)時(shí)觸發(fā)。
每當(dāng)app.get請(qǐng)求處理函數(shù)調(diào)用res.send,它的HTTP相應(yīng)會(huì)反過(guò)來(lái)讓res.on('data'...)處理函數(shù) 等待響應(yīng)的產(chǎn)生
math-client.js
var http = require('http'); var util = require('util'); [ "/factorial/20","/factorial/20", "/mult/10/20","/square/12" ].forEach(function(path){ var req = http.request({ host: "localhost", port: 3000, path: path, method: 'GET' }, function(res){ res.on('data', function(chunk){ util.log('BODY: ' + chunk); }); }); req.end(); });
先啟動(dòng)server,然后再測(cè)試client。
希望本文所述對(duì)大家nodejs程序設(shè)計(jì)有所幫助。
- 從零開(kāi)始學(xué)習(xí)Node.js系列教程之設(shè)置HTTP頭的方法示例
- 從零開(kāi)始學(xué)習(xí)Node.js系列教程之SQLite3和MongoDB用法分析
- 從零開(kāi)始學(xué)習(xí)Node.js系列教程六:EventEmitter發(fā)送和接收事件的方法示例
- 從零開(kāi)始學(xué)習(xí)Node.js系列教程五:服務(wù)器監(jiān)聽(tīng)方法示例
- 從零開(kāi)始學(xué)習(xí)Node.js系列教程之基于connect和express框架的多頁(yè)面實(shí)現(xiàn)數(shù)學(xué)運(yùn)算示例
- 從零開(kāi)始學(xué)習(xí)Node.js系列教程四:多頁(yè)面實(shí)現(xiàn)的數(shù)學(xué)運(yùn)算示例
- 從零開(kāi)始學(xué)習(xí)Node.js
相關(guān)文章
nodejs讀寫(xiě)json文件的簡(jiǎn)單方法(必看)
下面小編就為大家?guī)?lái)一篇nodejs讀寫(xiě)json文件的簡(jiǎn)單方法(必看)。2017-03-03初學(xué)node.js中實(shí)現(xiàn)刪除用戶路由
這篇文章主要介紹了node.js中如何實(shí)現(xiàn)刪除用戶路由,下面和小編來(lái)一起學(xué)習(xí)一下吧2019-05-05解決下載了nodejs但npm?-v沒(méi)有反應(yīng)問(wèn)題的全過(guò)程
最近工作中遇到了個(gè)問(wèn)題,node安裝成功,但npm無(wú)法使用,所以下面這篇文章主要給大家介紹了關(guān)于下載了nodejs但npm?-v沒(méi)有反應(yīng)問(wèn)題解決的相關(guān)資料,需要的朋友可以參考下2022-08-08在Docker快速部署Node.js應(yīng)用的詳細(xì)步驟
這篇文章的目標(biāo)是為了向大家展示如何在Docker的container里運(yùn)行Node.js程序,文中通過(guò)圖文與示例代碼介紹的非常詳細(xì),有需要的朋友們可以參考借鑒。2016-09-09Node.js中環(huán)境變量process.env的一些事詳解
這篇文章主要給大家介紹了關(guān)于Node.js中環(huán)境變量process.env的一些事,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡(jiǎn)易登錄身份認(rèn)證
本篇文章主要介紹了Nodejs進(jìn)階:express+session實(shí)現(xiàn)簡(jiǎn)易身份認(rèn)證示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04