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


Posted in Javascript onApril 13, 2017

本文实例讲述了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);

测试结果:

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

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。

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

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

Javascript 相关文章推荐
在多个页面使用同一个HTML片段《续》
Mar 04 Javascript
js中事件的处理与浏览器对象示例介绍
Nov 29 Javascript
手机号码,密码正则验证
Sep 04 Javascript
详解JavaScript的流程控制语句
Nov 30 Javascript
基于node实现websocket协议
Apr 25 Javascript
Javascript使用function创建类的两种方法(推荐)
Nov 19 Javascript
原生JS实现图片翻书效果
Feb 16 Javascript
深入理解react-router@4.0 使用和源码解析
May 23 Javascript
jQuery实现标签子元素的添加和赋值方法
Feb 24 jQuery
JS加密插件CryptoJS实现的Base64加密示例
Aug 16 Javascript
vuejs移动端实现div拖拽移动
Jul 25 Javascript
JavaScript中this函数使用实例解析
Feb 21 Javascript
JS传参及动态修改页面布局
Apr 13 #Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
Apr 13 #Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
Apr 13 #Javascript
MUI  Scroll插件的使用详解
Apr 13 #Javascript
MUI 上拉刷新/下拉加载功能实例代码
Apr 13 #Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
Apr 13 #Javascript
mui上拉加载功能实例详解
Apr 13 #Javascript
You might like
类的另类用法--数据的封装
2006/10/09 PHP
php,ajax实现分页
2008/03/27 PHP
PHP小教程之实现链表
2014/06/09 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
python自然语言编码转换模块codecs介绍
2015/04/08 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
士力架广告词
2014/03/20 职场文书
管理建议书范文
2014/05/13 职场文书
酒店管理求职信
2014/06/09 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
三好学生竞选稿范文
2019/08/21 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android