Node笔记 - tips

一、原生获取url参数的两种方式

var http = require('http');
var url = require('url');
var qs = require('qeurystring');

var server = http.createServer( onRequest ).listen( 3000 );

function onRequest(req, res) {
     var data1 = url.parse(req.url , true).query ;  // 方法一
     var data2 = qs.parse(url.parse(req.url).query) ; // 方法二

      res.writeHead(200);
      res.write('nodeRequest');
      res.end();
}

二、箭头函数
直接写出返回值

var f = function() { return 5 }; 
var f = () => 5;         // 等同于上面的函数
var sum = function(num1, num2) { return num1 + num2; };
var sum = (num1, num2) => num1 + num2;        // 等同于上面的函数

三、面向对象
require 用来加载代码, 而 exports f和 module.exports 则用来导出代码。

  • exports 是指向 module.exports 的引用
  • require() 返回的是 module.exports 而不是 exports

1.写一个模块(类) rocker.js

function User(name, age) {
    this.name = name;
    this.age = age;
    this.about = function() {
        console.log(this.name + 'is' + this.age + 'years old');
    };
};
module.exports = User;

调用

var Rocker = require('./rocker.js');
var r = new Rocker('Ozzy', 62);
r.about();    // Ozzy is 62 yesrs old

继承

var User = requeir('./User');
function Teacher(name, age){
    User.apply(this, [name,age]);    // 继承了 User类
    this.teach = function(res) {
         res.write('子类的新方法');
    }
}
module.exprots = Teacher;

2.写一个模块(数组)

module.exports = ['Lemmy','Ozzy','Ronnie','Steven','Mick'];

调用

var rocker = require('./rocker.js');
console.log('Rockin in heaven: ' + rocker[2]);  // Rockin in heaven: Ronnie

三、Buffer(数据块)
JS语言自身只有字符串数据类型,没有二进制数据类型,因此 NodeJS提供了一个与String对等的全局构造函数Buffer来提供对二进制数据的操作。

四、单例模式
创建单例类 ConnPool

module.exports = (function() {
    // 引入时就执行
    var _value = 1;

    // 闭包方法
    return function() {
        console.log('value=' + _value++);
    }
})()

引入使用

var c = require('./ConnPool');  // 引入就执行,实例化 _value
c();  //调用时,执行闭包方法

五、带参数跳转
1.url方式传参
res.redirect('/index?email=aa&pwd=aaa')
2.session方式

req.session.rs = rs
res.redirect('新路径');
//新路径中:
rs = req.session.rs;
delete req.session.rs;  //清楚参数
  1. http重定向状态码
/*
301: 永久重定向,告诉客户端以后应从新地址访问
303: 对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI
307: 对于POST请求,表示请求还没有被处理,客户端应该向Loaction里的URI重新法器POST请求
301,302和303的处理结果是一样的,直接跳转到test2.php,post没有内容
307的会重新post请求到test2.php,并且给出页面提示
*/

六、jQuery

// 取出选择框中的文本
$(this).find("option:selected").text()

$("#typeid").find("option:selected").text()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容

  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,469评论 1 37
  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 6,331评论 0 6
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,613评论 2 41
  • Node基本 node的最大特性莫过于基于事件驱动的非阻塞I/O模型。 node通过事件驱动的方式处理请求,无须为...
    AkaTBS阅读 2,170评论 0 11
  • 感谢自己迈出不完美的第一步。之前老师问今天谁愿意来一个PHP时,我内心那个纠结、畏缩,心理一直在那做思想斗争。担心...
    双目灵阅读 234评论 0 0