从零开始学习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 相关文章推荐
拖动Html元素集合 Drag and Drop any item
Dec 22 Javascript
纯js分页代码(简洁实用)
Nov 05 Javascript
JS给超链接加确认对话框的方法
Feb 24 Javascript
javascript点击按钮实现隐藏显示切换效果
Feb 03 Javascript
Jquery为DIV添加click事件的简单实例
Jun 02 Javascript
强大Vue.js组件浅析
Sep 12 Javascript
JS中定位 position 的使用实例代码
Aug 06 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
Aug 28 Javascript
echarts实现词云自定义形状的示例代码
Feb 20 Javascript
JavaScript中变量提升机制示例详解
Dec 27 Javascript
bootstrap实现嵌套模态框的实例代码
Jan 10 Javascript
微信小程序vant弹窗组件的实现方式
Feb 21 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的错误信息
2006/10/09 PHP
比较全的PHP 会话(session 时间设定)使用入门代码
2008/06/05 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
php导出excel格式数据问题
2014/03/11 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
js验证输入是否为手机号码或电话号码示例
2013/12/30 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
Javascript Objects详解
2014/09/04 Javascript
jQuery遍历节点树方法分析
2016/09/08 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
Python语言描述最大连续子序列和
2017/12/05 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
详解Python time库的使用
2019/10/10 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
11月升旗仪式讲话稿
2014/02/15 职场文书
运动会班级口号
2014/06/09 职场文书
自荐信模板大全
2015/03/27 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript
Python借助with语句实现代码段只执行有限次
2022/03/23 Python