node.js

 

 

node.js基於谷歌的v8引擎,將谷歌的v8引擎單獨拿出來 運行在服務器端html

 

 

 全局對象

Node.js   ---->     global

在一個文件中,聲明的變量和函數都屬於局部變量或局部函數,在交互模式下屬於全局變量或全局函數;node

例1:npm

var a=1;
console.log(global.a);

例2:json

function fn(){
    console.log(123);
}
var res=global.fn();
console.log(res);

 JS:window

在瀏覽器下,文件中聲明的變量或建立的函數都屬因而全局做用域下的,能夠使用全局對象訪問;瀏覽器

xxx.html服務器

<script src="xxx.js"></script>

xxx.js網絡

var a=1;
function fn(){
    console.log(123);
}
console.log(a);
fn()
console.log(window.a);
window.fn();

 console對象

global.console.log(123);      // 打印消息
// 返回值:123
global.console.info(123);     // 打印消息
global.console.warn(123);     // 打印警告消息,感嘆號
global.console.error(123);    // 打印錯誤消息,叉號

// 開始計時
global.console.time('for-loop');
for(var i=0;i<10;i++){

}
// 計時結束
global.console.timeEnd('for-loop');

process對象 --->  查看當前計算機的進程

語法:process.arch                // 多少當前cpu架構架構

           process.platform         // 什麼當前操做系統函數

           process.env                // 查看當前計算機的環境變量oop

           process.version          // 查看node.js的版本號

           process.pid                 // 進程編號

           process.kill(pid)          // 殺死進程

buffer對象 --->  緩衝區(在內存中存儲數據的區域,存儲網絡傳出時的資源)

// 建立buffer,大小是5個字節
var buf=global.Buffer.alloc(5,'abcde');
console.log(buf);
// 將buffer數據轉成普通字符
console.log(buf.toString());

全局函數

parseInt / parseFloat / encodeURI / decodeURI  / isNaN  /  isFinite  /eval

console.log(global.parseInt(3.14));     // 3 

1) 一次性定時器

// 定時器,參數1是執行的操做,參數2是間隔的時間(ms),當間隔時間到了就執行回調函數
var timer = setTimeout(function(){
    console.log('響鈴');
},3000);

// 清除一次性定時器
clearTimeout(timer);

2)週期性定時器

// 週期性定時器,每間隔3秒響一次
var timer = setInterval(function(){
    console.log('響鈴');
},3000);

// 清除
clearInterval(timer);

例1:

// 使用週期性定時器每隔3秒打印hello,打印三次後清楚定時器
// 初始化1個變量用於記錄執行次數
var i=0;
var timer = setInterval(function(){
    i++;
    console.log('hello');
    // 當i爲3的時候清除定時器
    if(i==3){
        clearInterval(timer);
    }
},3000);

3)當即執行的定時器

// nextTick先執行,setImmediate後執行;
// 當即執行,放到一組事件的最後執行,沒有清除方式;
process.nextTick(function(){
    console.log('響鈴');
});


// 在下一個循環的開頭執行
setImmediate(function(){
    console.log('響鈴');
});

模塊

一、模塊:自定義模塊、核心模塊、第三方模塊

二、任意一個文件都是一個模塊

三、exports   require    module.exports   __diename     __dirname

四、導出:module.exports.fn=function(){ }

/*
建立兩個模塊main.js(主模塊),circle.js(功能模塊);在功能模塊中創
建兩個函數,傳遞1個參數,分別獲取圓的周長(getLength)和麪積(getArea),
導出這兩個函數;在主模塊中引入功能模塊,調用兩個方法;*/


//[circle.js]
function getLength(){
    return 2*PI*r;
}

function getArea(){
    return PI*r*r;
}
// 導出
module.exports.getLength=getLength;
module.exports.getArea=getArea;



// [main.js]
// 引入功能模塊circle.js,自定義模塊格爲js結尾,.js能夠省略
var circle=require('./circle.js'); 
console.log(circle.getLength(2));
console.log(circle.getArea(2));

五、引入文件模塊或目錄模

 

 

 

 例1:

/*建立模塊03_1.js,引入當前目錄下的03_2目錄模塊;
在03_2下建立test.js,導出一個函數fn(打印兩個數字
相加),在03_1.js中調用*/

//【03_1.js】
var test=require('/03_2/test.js')
console.log(test.add(2,3));



//【test.js】
function add(a,b){
    return a+b;
}
module.exports.add=add;


// 【package.json】
{"main":"test.js"}

例2:

/*在05目錄下建立模塊05_1.js,引入不帶路徑的目錄模塊05_2,
05_2目錄中含有hello.js文件(打印一句話)*/

// 【05目錄下05_1.js模塊】
require('05_2');


// [node_modules目錄下05_2目錄,文件名hello.js]
console.log('hello');

// [node_modules目錄下05_2目錄,建立package.json]
{"main":"hello.js"}

 

包和npm

 npm:node package manage

包:就是一個目錄模塊,裏邊包含多個文件,其中有一個文件命名爲package,json文件,是包說明文件。

 

核心模塊--> nodejs官方提供的模塊,能夠直接引用,不須要建立

1) 查詢字符串模塊——quearystring

瀏覽器向服務器發送請求,傳遞數據的一種方式

parse()    將查詢字符串解析爲對象

stringify()    將對象轉換爲查詢字符串

http://www.codeboy.com/product_details.html?lid=5&name=dell

例1:

//[querystring.js]
// 引入查詢字符串模塊
const querystring=require('querystring');   // 對象     用戶引入核心模塊
var str='lid=5&pname=dell';
// 獲取查詢字符串傳遞的數據
// 將查詢字符串解析爲對象
var obj=querystring.parse(str);
console.log(obj.lid,obj.dell);

var obj2={
    name:'tom',
    age:18,
    sex:1
}
// 將對象轉換爲查詢字符串
var str2=querystring.stringfy(obj2);
console.log(str2);

 例2:

/* 把百度搜索時的查詢字符串解析爲對象,獲取關鍵詞 
ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=電腦& */
const querystring=require('querystring');
var str='ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=電腦&';
var obj=querystring.parse(str);
console.log(obj.wd);

2)url模塊

 

3)

 

4)

相關文章
相關標籤/搜索