美文网首页
Node笔记 - tips

Node笔记 - tips

作者: _Wake | 来源:发表于2016-11-21 12:03 被阅读18次

    一、原生获取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()
    

    相关文章

      网友评论

          本文标题:Node笔记 - tips

          本文链接:https://www.haomeiwen.com/subject/dhlupttx.html