从零开始学习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 相关文章推荐
日期函数扩展类Ver0.1.1
Sep 07 Javascript
javascript+xml技术实现分页浏览
Jul 27 Javascript
一个tab标签切换效果代码
Mar 27 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
Apr 17 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
基于javascript bootstrap实现生日日期联动选择
Apr 07 Javascript
Backbone中View之间传值的学习心得
Aug 09 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
Oct 16 Javascript
CryptoJS中AES实现前后端通用加解密技术
Dec 18 Javascript
Vue组件通信中非父子组件传值知识点总结
Dec 05 Javascript
浅谈js中的attributes和Attribute的用法与区别
Jul 16 Javascript
一小时迅速入门Mybatis之bind与多数据源支持 Java API
Sep 15 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
phpinfo 系统查看参数函数代码
2009/06/05 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
php中的静态变量的基本用法
2014/03/20 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
Symfony实现行为和模板中取得request参数的方法
2016/03/17 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
IE与FireFox中的childNodes区别
2011/10/20 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
2017/07/24 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
基于JavaScript实现留言板功能
2020/03/16 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
Python操作SQLite简明教程
2014/07/10 Python
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
Python中的fileinput模块的简单实用示例
2015/07/09 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
python编写计算器功能
2019/10/25 Python
详解Django admin高级用法
2019/11/06 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
《曹刿论战》教学反思
2014/03/02 职场文书
机关保密承诺书
2014/06/03 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
分享Python获取本机IP地址的几种方法
2022/03/17 Python