日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php中nodethirtythree,node常用模块 - LinearLaw的个人空间 - OSCHINA - 中文开源技术交流社区...

發布時間:2023/12/19 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php中nodethirtythree,node常用模块 - LinearLaw的个人空间 - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nodeJS和ES6

node基本用法

(1)安裝nodeJS

cmd輸入node -v出現node版本號,表明安裝成功。

(2)node中的互相調用

require("./02.js");//調用其他的js文件

module.exports = obj;//向外暴露接口

tips:var xx = require("./xx.js")

這樣即可獲取到在xx.js中module.exports中的值。

(3)node內置模塊

os模塊

os:系統模塊

提供一些基本操作系統的相關函數;

os.platform()當前系統類型

os.uptime()當前操作系統的運行時間;

fs模塊

fs:文件讀取模塊,用于對系統文件和目錄的讀寫操作;

fs.writeFile("./xx.txt","aaa");

fs.readFile("./xx.txt","utf-8",function(err,data){

data為讀取到的內容,err為出錯信息。

})

path模塊

path:路徑模塊;

路徑處理模塊,存有路徑的信息,同時提供了對路徑操作的方法;

let str = "./tmp/d.txt";

path.dirname(str);獲取路徑(./tmp)

path.basename(str);獲取文件名(d.txt)

path.extname(str);獲取擴展名(.txt)

path.join(__dirname,"路徑2");將當前路徑和文件路徑合并;

http模塊

1、http:nodeJS中封裝了高效的http服務器和http服務端。

http.server是一個基于事件的http服務器;

http.request是一個客戶端工具;

eg:

const http = require("http");

const server = http.createServer();

server.listen(8080);

server.on("request",(req,res)=>{

res.end("發回給瀏覽器的數據");

})

tips:createServer創建了一個服務器,listen監聽了其相對應的端口。

在前端發來了請求之后,觸發事件,執行回調函數。

2、需要給返回的內容設置其類型,即響應頭;

res.writeHeader(200,{

'Content-Type':'text/html';

})

tips:設置了響應頭,指定了返回數據的類型,在解析時會根據類型做相應解析;

tips:前端接收數據,html會解析其中的標簽,json會解析使其變為對象;

url模塊

1、url:url模塊提供操作url的方法,以及保存了url的信息;

req.url

const obj = url.parse(req.url,true);

tips:這時的obj將會變成一個url對象(json對象)

{

protocol:

slashes:

...

}

url.format(urlObj)將url解析成字符串,路徑形式;

url.resolve(from,to)拼接路徑,將路徑起始和終止連接;

tips:url中的pathname是路徑的末尾處部分;

eg:

www.xxx.com/index.html

這里的pathname即為'index.html';

eg:

server.on('request',(req,res)=>{

const obj = url.parse(req.url,true)

fs.readFile('./public' + obj.pathname, (err, data)=>{

res.end(data);

})

})

tips:將指定的路徑獲取的的文件內容返回到客戶端,讀取數據,res.end(data);

2、在瀏覽器中,前端發送的數據可能會分為多次進行發送,

這時候需要將所有發送的內容都進行獲取之后在進行操作。

eg:

req.on('data', (chunk)=>{

str += chunk;

})

tips:這里的chunk指代了每一次獲取的數據,將每次的數據都進行拼接;

querystring模塊

querystring:用于將對象轉化為字符串,或將字符串轉化為對象,

用于get請求的數據格式轉化;

eg:

const query = querystring.stringify(obj, [sep], [eq]);`

query.parse(str);

util模塊

util:

child_process

child_process+

ES6語法

(1)、變量聲明

使用的變量必須在聲明后才可以使用;

es6的語法聲明沒有變量提升,且聲明的變量的作用域會局限于{}中。

const constant,常數、常量,在定義之后就不可更改,不變的量。

let比起var沒有變量提升。

(2)、對象方法

對象解構(object deconstruct)

let userinfo = {name:"xx",age:18}

let {name} = userinfo;

tips:輸出的name的結果為userinfo.name;

let {name,age} = userinfo;

let {name:name12 , age} = userinfo;

tips:name的值賦給name12,進行了重命名操作;

數組解構

let arr = ["xx", "yy", "aa", "cc"]

let [a, b, c, d] = arr

結果為:

a = "xx";

b = "yy";

c = "aa";

d = "cc";

tips:解構后的對應變量和數組元素一一對應;

eg:

let [a, , b, c] = arr;//這時候的第二個元素會被忽略;

let [ , , , a] = arr;//前三個元素忽略,只有第四個元素被取出了;

數組過濾

var arr_2 = arr.find(function(item, index){

//item指arr中的元素,index為該元素的索引值

//在其內部可以寫if條件判斷,

//當return值為true的時候,該元素就會作為返回值返回,可以用一個變量來接收;

})

(3)、字符串方法

str.includes()是否包含該字符串

str.startsWith()是否以該字符串開頭

str.endsWith()是否以該字符串結尾

tips:全部都返回一個布爾值;

eg:

let str = "xxyyzzsstt";

str.includes("yy")

str.startsWith("xx")

str.endsWith("tt")

(4)、模板字符串

反引號,用于拼接字符串

let obj = {name:xx, age:yy}

str = `

${obj.name}

${obj.age}

`

tips:反引號內部的字符串支持換行,不需要加號拼接;

(5)數組新方法

arr.find(function(item,index){

//item是當前的元素,index為其索引

//當出現了符合條件的元素時,寫return true,這時即返回了一個當前符合條件的元素,可以用一個變量來接收這個元素

})

let tmp = arr.findIndex(function(item,index){

return index > 28

//此時返回的即為index > 28的元素

})

(6)對象擴展,obj extend

let name = "xx";

let age = 18;

let obj = {

name,

age,

gender : woman

}

tips:在這里,obj里的name和外界定義的name名稱一致,在obj中本來應該寫成name : name,因為同名,所以在這里可以省略成只寫一個name;

(7)函數簡寫

hello:function(){

}

簡寫:

寫法一:hello(){

}

寫法二:hello()=>{

}

tips:在箭頭函數中,其內部不存在this,如果出現了this,只會往上一級尋找this變量;

普通的function中才會有this;

eg:

hello:x=> x * x

tips:該函數等同于hello:function(x){

return x * x

}

(8)展開運算符

以下兩式等同,...相當于apply。數組將會被拆分每一個元素都會分別調用方法。

function test(a,b,c){}

var args = [0, 1 , 2]

test.apply(null, args)

======>

function test(a,b,c){}

var args = [0, 1, 2]

test(...args)

總結

以上是生活随笔為你收集整理的php中nodethirtythree,node常用模块 - LinearLaw的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。