了不起的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 相关文章推荐
jquery 单击li防止重复加载的实现代码
Dec 24 Javascript
JavaScript 继承使用分析
May 12 Javascript
Js放到HTML文件中的哪个位置有什么区别
Aug 21 Javascript
Javascript表格翻页效果的具体实现
Oct 05 Javascript
AngularJs Scope详解及示例代码
Sep 01 Javascript
js两种拼接字符串的简单方法(必看)
Sep 02 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
Jun 15 Javascript
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
如何以Angular的姿势打开Font-Awesome详解
Apr 22 Javascript
微信小程序实现蒙版弹窗效果
Nov 01 Javascript
Vue使用自定义指令实现拖拽行为实例分析
Jun 06 Javascript
Vue与React的区别和优势对比
Dec 18 Vue.js
了不起的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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
PHP中for循环语句的几种变型
2006/11/26 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
师德个人剖析材料
2014/02/02 职场文书
大学生赌博检讨书
2014/09/22 职场文书
刘公岛导游词
2015/02/05 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
大学入学感言
2015/08/01 职场文书
基于Python实现将列表数据生成折线图
2022/03/23 Python