从零开始学习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 相关文章推荐
JScript中的undefined和&quot;undefined&quot;的区别
Mar 08 Javascript
使弱类型的语言JavaScript变强势
Jun 22 Javascript
javascript控制frame,iframe的src属性代码
Dec 31 Javascript
原生js实现半透明遮罩层效果具体代码
Jun 06 Javascript
node.js中的buffer.slice方法使用说明
Dec 10 Javascript
JavaScript中switch语句的用法详解
Jun 03 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
js精准的倒计时函数分享
Jun 29 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
Sep 16 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
Oct 14 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
Oct 20 Javascript
简单了解JavaScript sort方法
Nov 25 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
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
javascript获取当前ip的代码
2009/05/10 Javascript
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
Python高效编程技巧
2013/01/07 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
pandas 时间格式转换的实现
2019/07/06 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
幼儿园中班上学期评语
2014/04/18 职场文书
学校节能减排倡议书
2014/05/16 职场文书
大学生工作求职信
2014/06/23 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
OpenCV实现普通阈值
2021/11/17 Java/Android
用Python生成会跳舞的美女
2022/01/18 Python