JavaScript

超轻量级php框架startmvc

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

更新时间:2020-05-06 12:18:01 作者:startmvc
本文实例讲述了Node.js多页面实现数学运算的client端和server端。分享给大家供大家参考,具

本文实例讲述了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程序设计有所帮助。

Node.js 多页面 数学运算 client端 server端