本文實例講述了Node.js多頁面實現數學運算的client端和server端。分享給大家供大家參考,具體如下:
1、server端
支持數學運算的服務器,服務器的返回結果用json對象表示。
math-server.js
//通過監聽3000端口使其作為Math Wizard的后臺程序var math = require('../nodejsExample3/math.js');var express = require('express');var app = express();app.configure(function(){ app.use(app.router); //默認的錯誤處理函數,顯示棧軌跡 //如果要顯示用戶友好的錯誤,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);測試結果:

2、client端
http.request方法會創建一個HTTP請求,并將URL元素分割到參數對象中,res.on語句里聲明的回調函數會在HTTP相應數據到達時觸發。
每當app.get請求處理函數調用res.send,它的HTTP相應會反過來讓res.on('data'...)處理函數 等待響應的產生
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();});先啟動server,然后再測試client。

希望本文所述對大家nodejs程序設計有所幫助。
新聞熱點
疑難解答