從零開始學(xué)習(xí)Node.js系列教程四:多頁面實(shí)現(xiàn)數(shù)學(xué)運(yùn)算的client端和server端示例
本文實(shí)例講述了Node.js多頁面實(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
//通過監(jiān)聽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語句里聲明的回調(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ì)反過來讓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ì)有所幫助。
- 從零開始學(xué)習(xí)Node.js系列教程之設(shè)置HTTP頭的方法示例
- 從零開始學(xué)習(xí)Node.js系列教程之SQLite3和MongoDB用法分析
- 從零開始學(xué)習(xí)Node.js系列教程六:EventEmitter發(fā)送和接收事件的方法示例
- 從零開始學(xué)習(xí)Node.js系列教程五:服務(wù)器監(jiān)聽方法示例
- 從零開始學(xué)習(xí)Node.js系列教程之基于connect和express框架的多頁面實(shí)現(xiàn)數(shù)學(xué)運(yùn)算示例
- 從零開始學(xué)習(xí)Node.js系列教程四:多頁面實(shí)現(xiàn)的數(shù)學(xué)運(yùn)算示例
- 從零開始學(xué)習(xí)Node.js
相關(guān)文章
node.js中express模塊創(chuàng)建服務(wù)器和http模塊客戶端發(fā)請(qǐng)求
今天小編就為大家分享一篇關(guān)于node.js中express模塊創(chuàng)建服務(wù)器和http模塊客戶端發(fā)請(qǐng)求,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
node.js微信小程序配置消息推送的實(shí)現(xiàn)
這篇文章主要介紹了node.js微信小程序配置消息推送的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02
Node.js 應(yīng)用跑得更快 10 個(gè)技巧
Node.js 受益于它的事件驅(qū)動(dòng)和異步的特征,已經(jīng)很快了。本文將介紹 10 條,經(jīng)過檢驗(yàn)得知可大大提高 Node 應(yīng)用的技巧。廢話不多說,讓我們逐條來看看2016-04-04
利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)
這篇文章主要給大家介紹了關(guān)于利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)的相關(guān)資料,文中通過示例示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
Windows7系統(tǒng)下如何安裝nodejs16以上版本
這篇文章主要給大家介紹了關(guān)于Windows7系統(tǒng)下如何安裝nodejs16以上版本的相關(guān)資料,很多時(shí)候node.js的版本存在兼容,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
node.js中stream流中可讀流和可寫流的實(shí)現(xiàn)與使用方法實(shí)例分析
這篇文章主要介紹了node.js中stream流中可讀流和可寫流的實(shí)現(xiàn)與使用方法,結(jié)合實(shí)例形式分析了node.js stream流可讀流和可寫流基本分類、原理、定義、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-02-02

