从零开始学习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 相关文章推荐
浅谈javascript的原型继承
Jul 25 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
Nov 04 Javascript
js实现键盘Enter键提交表单的方法
May 27 Javascript
jQuery简单实现验证邮箱格式
Jul 15 Javascript
JS实现输入框提示文字点击时消失效果
Jul 19 Javascript
AngularJS中的API(接口)简单实现
Jul 28 Javascript
Bootstrap实现带动画过渡的弹出框
Aug 09 Javascript
JavaScript实现瀑布流以及加载效果
Feb 11 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
Aug 16 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
微信小程序实现单选功能
Oct 30 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
Jan 27 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
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
php+html5使用FormData对象提交表单及上传图片的方法
2015/02/11 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
跟老齐学Python之复习if语句
2014/10/02 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
2015/12/22 Python
Python 字典与字符串的互转实例
2017/01/13 Python
python列表生成式与列表生成器的使用
2018/02/23 Python
浅谈python 类方法/静态方法
2020/09/18 Python
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
.net面试题
2016/09/17 面试题
英语专业个人求职信范文
2014/02/01 职场文书
财产公证书
2014/04/10 职场文书
二年级评语大全
2014/04/23 职场文书
设备管理实施方案
2014/05/31 职场文书
催款函怎么写
2015/06/24 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
总结一些Java常用的加密算法
2021/06/11 Java/Android
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS