2016年7月11日 星期一

Buffer、Modules、Web (Node.js 5)

※Buffer

官網連結


// const buf = require('buffer').Buffer(6, 'utf8');
const buffer = require('buffer');
    
// 以下四種方法,長度都是6
var buf = buffer.Buffer(6, 'utf8');
// var buf = buffer.Buffer('az4_e)', 'utf8');
// var buf = buffer.Buffer(['a',4,'z',99, 'xxx', '%'], 'utf8');
/*
var xf = buffer.Buffer(6, 'utf8');
var buf = buffer.Buffer(xf);
*/
    
console.log('length0='+  buf.length);
    
var len = buf.write("abc");
console.log('length1='+  len);
for(var i=0; i<len; i++){
    console.log(buf[i]);
}
    
len = buf.write("12");
console.log('length2='+  len);
for(var i=0; i<len; i++){
    console.log(buf[i]);
}
    
len = buf.write("一二");
console.log('length3='+  len);
for(var i=0; i<len; i++){
    console.log(buf[i]);
}
    
len = buf.write("\r\n");
console.log('length4='+  len);
for(var i=0; i<len; i++){
    console.log(buf[i]);
}

※第一行的寫法,我改成第二行的寫法,然後直接.Buffer,或者都不要require,直接new Buffer(6)也是可以

※第二個參數,預設就是utf8,所以可以不打

※length3是中文,utf8一個佔3B,所以如果給5個長度,它會變成3
但我將此js檔也用utf8存的,用別的會怪怪的

※write第2、3個參數是起始結束,可是一設定以後,就沒有辦法再改了

※buf[i]是ascii,可以用String.fromCharCode(buf[i])轉,但中文不行

※toString

const buffer = require('buffer');
    
var buf = buffer.Buffer(60, 'utf8');
console.log('length0='+  buf.length);
    
var len = buf.write("abcdefghijk");
console.log('length='+  len);
    
for(var i=0; i<len; i=i+2){
    console.log(buf.toString('utf8', i, i+2) + '\r\n');
}

※直接印出裡面的字(abcde...)



※Modules

官網連結

※exportsTest.js

module.exports = {
    name : 'chess',
    price : 50,
    company : [
        'A',
        'B',
        'C'
    ]
};

※先寫一支檔案


※引用檔案

var exports = require('./exportsTest.js');
for(var e in exports){
    console.log('key=' + e);
    console.log('value=' + exports[e] + '\r\n');
}

※.是當前目錄,就是和node xxx同個目錄,不是dos上的目錄

※.js可以不用加,但如果有一支檔案叫exportsTest會先抓這支檔案,沒有抓到才會抓.js的
官網有說,如果找不到,就會就檔名加上.js->.json->.node,都沒有才是錯,以這個例子.json和.node是不能用的



※原型模組

var count = 0;
var xxx = module.exports = function(){
    this.count = 0;
}
    
xxx.prototype.ooo = function(){
    this.count++;
}

※先寫一支檔案,我將剛剛的拿來改


※引用檔案

var exports = require('./exportsTest.js');
var x = new exports();
x.ooo();
x.ooo();
console.log(x.count);

※結果是2



※Web

官網範例
複製好後,在命令提示字元輸入node xxx會停在那裡,然後到瀏覽器打127.0.0.1:3000就會看到Hello World了

沒有留言:

張貼留言