从零开始学习Node.js系列教程二:文本提交与显示方法


Posted in Javascript onApril 13, 2017

本文实例讲述了Node.js文本提交与显示方法。分享给大家供大家参考,具体如下:

index.js

var server = require("./server");
var router = require("./router");
var requestHandlers = require("./requestHandlers");
var handle = {}
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route, handle);

server.js

var http = require("http");
var url = require("url");
function start(route, handle) {
 function onRequest(request, response) {
  var postData = "";
  var pathname = url.parse(request.url).pathname;
  console.log("Request for " + pathname + " received.");
  request.setEncoding("utf8");
  request.addListener("data", function(postDataChunk) {
   postData += postDataChunk;
   console.log("Received POST data chunk '"+
   postDataChunk + "'.");
  });
  request.addListener("end", function() {
   console.log("data received ending" + pathname);
   route(handle, pathname, response, postData);
  });
 }
 http.createServer(onRequest).listen(8888);
 console.log("Server has started.");
}
exports.start = start;

requestHandlers.js

var querystring = require("querystring");
function start(response, postData) {
 console.log("Request handler 'start' was called.");
 var body = '<html>'+
  '<head>'+
  '<meta http-equiv="Content-Type" content="text/html; '+
  'charset=UTF-8" />'+
  '</head>'+
  '<body>'+
  '<form action="/upload" method="post">'+
  '<textarea name="text" rows="20" cols="60"></textarea>'+
  '<input type="submit" value="Submit text" />'+
  '</form>'+
  '</body>'+
  '</html>';
  response.writeHead(200, {"Content-Type": "text/html"});
  response.write(body);
  response.end();
}
function upload(response, postData) {
 console.log("Request handler 'upload' was called.");
 response.writeHead(200, {"Content-Type": "text/plain"});
 response.write("You've sent the text: "+
 querystring.parse(postData).text);
 response.end();
}
exports.start = start;
exports.upload = upload;

router.js

function route(handle, pathname, response, postData) {
 console.log("About to route a request for " + pathname);
 if (typeof handle[pathname] === 'function') {
  handle[pathname](response, postData);
 } else {
  console.log("No request handler found for " + pathname);
  response.writeHead(404, {"Content-Type": "text/plain"});
  response.write("404 Not found");
  response.end();
 }
}
exports.route = route;

result:

从零开始学习Node.js系列教程二:文本提交与显示方法从零开始学习Node.js系列教程二:文本提交与显示方法从零开始学习Node.js系列教程二:文本提交与显示方法从零开始学习Node.js系列教程二:文本提交与显示方法从零开始学习Node.js系列教程二:文本提交与显示方法

知识点:

require和exports的用法:

index.js中代码

var Hello = require('.hello');
hello = new Hello();
hello.setName('Joey');
hello.sayHello();

hello.js中代码

function Hello(){
  var name;
  this.setName = function(thyName){
    name = thyName;
  }
  this.sayHello = function(){
    console.log('Hello ' + name);
  }
}
//exports.Hello = Hello; //此时我们在其他文件中需要通过 require('./hello').Hello来获取Hello对象,这种写法有点冗余
module.exports = Hello; //输出的就是Hello对象本身,不是上面的exports,上面的是暴露.Hello,.Hello赋予了Hello对象

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

Javascript 相关文章推荐
jQuery判断指定id的对象是否存在的方法
May 22 Javascript
jQuery实现hover合成事件的方法
Aug 06 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
jQuery检测滚动条是否到达底部
Dec 15 Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 Javascript
JavaScript定义函数的三种实现方法
Sep 23 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
Mar 13 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
Feb 11 Javascript
ES6 更易于继承的类语法的使用
Feb 11 Javascript
JS实现继承的几种常用方式示例
Jun 22 Javascript
一次微信小程序内地图的使用实战记录
Sep 09 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
Apr 13 #Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
Apr 13 #Javascript
JavaScript数据结构之二叉树的计数算法示例
Apr 13 #Javascript
JavaScript数据结构之二叉树的删除算法示例
Apr 13 #Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 #Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 #jQuery
JavaScript中this的用法及this在不同应用场景的作用解析
Apr 13 #Javascript
You might like
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
JS检测图片大小的实例
2013/08/21 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
Python函数参数类型*、**的区别
2015/04/11 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Django密码系统实现过程详解
2019/07/19 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
Python中logging日志库实例详解
2020/02/19 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
生物技术专业研究生自荐信
2013/09/22 职场文书
文明青少年标兵事迹材料
2014/01/28 职场文书
如何写好优秀的创业计划书
2014/01/30 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
大学毕业生自我评价
2015/03/02 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
企业财务管理制度范本
2015/08/04 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书