了不起的node.js读书笔记之node的学习总结


Posted in Javascript onDecember 22, 2014

这周做项目做得比较散(应该说一直都是这样),总结就依据不同情境双开吧~这篇记录的是关于node的学习总结,而下一篇是做项目学到的web前端的知识。

1.HTTP篇

  node的HTTP模块在第一篇时接触过,这里来学习几个例程中出现的API。

var qs = require('querystring');
require('http').createServer(function(req, res){

    if('/' == req.url){

        res.writeHead(200, {'Content-Type': 'text/html'});

        res.end([

            '<form method="POST" action="/url">',

            '<h1>My form</h1>',

            '<fieldset>',

            '<label>Personal information</label>',

            '<p>What is your name?</p>',

            '<input type="text" name="name">',

            '<p><button>Submit</button></p>',

            '</form>',

        ].join(''));

    }else if('/url' == req.url && 'POST' == req.method){

        var body = '';

        req.on('data', function(chunk){

            body += chunk;

        });

        req.on('end', function(){

            res.writeHead(200, {'Content-Type': 'text/html'});

            res.end('<b>Your name is <b>' + qs.parse(body).name + '</b></p>');

        });

    }else{

        res.writeHead(404);

        res.end('not found');

    }

 }).listen(3000);

  creatServer([requestListener])函数的参数是一个回调函数function(req, res),其中的req(请求request)是http.IncomingMessage的一个实例,res(响应)则是http.ServerRrsponse的实例。

  我们用到了res的url、method字符串和两个方法writeHead、end。顾名思义,url就是记录HTTP的URL(主机名后面所有的东西),method就是记录HTTP响应的方法。

  writeHead(statusCode, [reasonPhrase], [headers])用来发送一个http响应头信息,此方法只有当消息到来时才被调用一次,并且必须在end这一类方法之前调用。如果你反而为之,先调用了write(chunk, [encoding])或者end([data], [encoding])方法,系统会自动记录一个不易见、易变的(总之不好的)响应头内容并调用writeHead这个方法。

  而end方法会对服务器发出消息表示响应的信息都发送完毕,所以每次响应发送完毕时必须调用这个方法。当其参数有内容(如例程)时,这个方法等于同时调用了write('内容', [encoding])和end方法。这还是相当方便的。

  接下来,例程使用了req.on来监听事件并绑定在req(message)上。其原型是Emitter.on(event, listener),req就是产生事件的对象,并且在在监听函数中this指向当前监听函数所关联的EventEmitter对象。

Javascript 相关文章推荐
javascript xml为数据源的下拉框控件
Jul 07 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
javascript的正则匹配方法学习
Feb 24 Javascript
关于session和cookie的简单理解
Jun 08 Javascript
完全深入学习Bootstrap表单
Nov 28 Javascript
详解angular2封装material2对话框组件
Mar 03 Javascript
详解.vue文件解析的实现
Jun 11 Javascript
Vue-cli3项目配置Vue.config.js实战记录
Jul 29 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
Aug 15 Javascript
更强大的vue ssr实现预取数据的方式
Jul 19 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
Sep 02 Javascript
JS前端canvas交互实现拖拽旋转及缩放示例
Aug 05 Javascript
了不起的node.js读书笔记之node.js中的特性
Dec 22 #Javascript
jQuery+ajax中getJSON() 用法实例
Dec 22 #Javascript
IE8中动态创建script标签onload无效的解决方法
Dec 22 #Javascript
javascript的日期对象、数组对象、二维数组使用说明
Dec 22 #Javascript
javascript中的遍历for in 以及with的用法
Dec 22 #Javascript
Jquery实现图片预加载与延时加载的方法
Dec 22 #Javascript
javascript定义变量时加var与不加var的区别
Dec 22 #Javascript
You might like
深入php 正则表达式的学习探讨
2013/06/06 PHP
PHP的PSR规范中文版
2013/09/28 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
关于图片验证码设计的思考
2007/01/29 Javascript
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
js命名空间写法示例
2015/12/18 Javascript
JQuery插件Marquee.js实现无缝滚动效果
2016/04/26 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
python实现图片文件批量重命名
2020/03/23 Python
python实现ip代理池功能示例
2019/07/05 Python
Python实现代码统计工具
2019/09/19 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
腾讯广告词
2014/03/19 职场文书
追悼会主持词
2014/03/20 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
2014年就业工作总结
2014/11/26 职场文书
先进单位申报材料
2014/12/25 职场文书
党员承诺书格式范文
2015/04/28 职场文书
教育教学工作反思
2016/02/24 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书