从零开始学习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 相关文章推荐
jQuery使用手册之一
Mar 24 Javascript
心扬JS分页函数代码
Sep 10 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
Jan 15 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
Dec 29 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
Dec 06 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
Apr 13 Javascript
基于Node的React图片上传组件实现实例代码
May 10 Javascript
jQuery制作input提示内容(兼容IE8以上)
Jul 05 jQuery
JavaScript模块详解
Dec 18 Javascript
全新打包工具parcel零配置vue开发脚手架
Jan 11 Javascript
微信小程序云开发 搭建一个管理小程序
May 17 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 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
MySQL连接数超过限制的解决方法
2011/07/17 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
Chrome Web App开发小结
2014/09/04 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
Javascript Math对象
2009/08/13 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
underscore之Collections_动力节点Java学院整理
2017/07/10 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
详解JavaScript中的Object.is()与"==="运算符总结
2020/06/17 Javascript
vue实现登录功能
2020/12/31 Vue.js
Python深度优先算法生成迷宫
2018/01/22 Python
kafka-python批量发送数据的实例
2018/12/27 Python
Python3中的bytes和str类型详解
2019/05/02 Python
Django中的用户身份验证示例详解
2019/08/07 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
群众路线领导班子整改方案
2014/10/25 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android