php中nodethirtythree,node常用模块 - LinearLaw的个人空间 - OSCHINA - 中文开源技术交流社区...
nodeJS和ES6
node基本用法
(1)安裝nodeJS
cmd輸入node -v出現(xiàn)node版本號,表明安裝成功。
(2)node中的互相調(diào)用
require("./02.js");//調(diào)用其他的js文件
module.exports = obj;//向外暴露接口
tips:var xx = require("./xx.js")
這樣即可獲取到在xx.js中module.exports中的值。
(3)node內(nèi)置模塊
os模塊
os:系統(tǒng)模塊
提供一些基本操作系統(tǒng)的相關(guān)函數(shù);
os.platform()當前系統(tǒng)類型
os.uptime()當前操作系統(tǒng)的運行時間;
fs模塊
fs:文件讀取模塊,用于對系統(tǒng)文件和目錄的讀寫操作;
fs.writeFile("./xx.txt","aaa");
fs.readFile("./xx.txt","utf-8",function(err,data){
data為讀取到的內(nèi)容,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服務(wù)器和http服務(wù)端。
http.server是一個基于事件的http服務(wù)器;
http.request是一個客戶端工具;
eg:
const http = require("http");
const server = http.createServer();
server.listen(8080);
server.on("request",(req,res)=>{
res.end("發(fā)回給瀏覽器的數(shù)據(jù)");
})
tips:createServer創(chuàng)建了一個服務(wù)器,listen監(jiān)聽了其相對應(yīng)的端口。
在前端發(fā)來了請求之后,觸發(fā)事件,執(zhí)行回調(diào)函數(shù)。
2、需要給返回的內(nèi)容設(shè)置其類型,即響應(yīng)頭;
res.writeHeader(200,{
'Content-Type':'text/html';
})
tips:設(shè)置了響應(yīng)頭,指定了返回數(shù)據(jù)的類型,在解析時會根據(jù)類型做相應(yīng)解析;
tips:前端接收數(shù)據(jù),html會解析其中的標簽,json會解析使其變?yōu)閷ο?#xff1b;
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:將指定的路徑獲取的的文件內(nèi)容返回到客戶端,讀取數(shù)據(jù),res.end(data);
2、在瀏覽器中,前端發(fā)送的數(shù)據(jù)可能會分為多次進行發(fā)送,
這時候需要將所有發(fā)送的內(nèi)容都進行獲取之后在進行操作。
eg:
req.on('data', (chunk)=>{
str += chunk;
})
tips:這里的chunk指代了每一次獲取的數(shù)據(jù),將每次的數(shù)據(jù)都進行拼接;
querystring模塊
querystring:用于將對象轉(zhuǎn)化為字符串,或?qū)⒆址D(zhuǎn)化為對象,
用于get請求的數(shù)據(jù)格式轉(zhuǎn)化;
eg:
const query = querystring.stringify(obj, [sep], [eq]);`
query.parse(str);
util模塊
util:
child_process
child_process+
ES6語法
(1)、變量聲明
使用的變量必須在聲明后才可以使用;
es6的語法聲明沒有變量提升,且聲明的變量的作用域會局限于{}中。
const constant,常數(shù)、常量,在定義之后就不可更改,不變的量。
let比起var沒有變量提升。
(2)、對象方法
對象解構(gòu)(object deconstruct)
let userinfo = {name:"xx",age:18}
let {name} = userinfo;
tips:輸出的name的結(jié)果為userinfo.name;
let {name,age} = userinfo;
let {name:name12 , age} = userinfo;
tips:name的值賦給name12,進行了重命名操作;
數(shù)組解構(gòu)
let arr = ["xx", "yy", "aa", "cc"]
let [a, b, c, d] = arr
結(jié)果為:
a = "xx";
b = "yy";
c = "aa";
d = "cc";
tips:解構(gòu)后的對應(yīng)變量和數(shù)組元素一一對應(yīng);
eg:
let [a, , b, c] = arr;//這時候的第二個元素會被忽略;
let [ , , , a] = arr;//前三個元素忽略,只有第四個元素被取出了;
數(shù)組過濾
var arr_2 = arr.find(function(item, index){
//item指arr中的元素,index為該元素的索引值
//在其內(nèi)部可以寫if條件判斷,
//當return值為true的時候,該元素就會作為返回值返回,可以用一個變量來接收;
})
(3)、字符串方法
str.includes()是否包含該字符串
str.startsWith()是否以該字符串開頭
str.endsWith()是否以該字符串結(jié)尾
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:反引號內(nèi)部的字符串支持換行,不需要加號拼接;
(5)數(shù)組新方法
arr.find(function(item,index){
//item是當前的元素,index為其索引
//當出現(xiàn)了符合條件的元素時,寫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中本來應(yīng)該寫成name : name,因為同名,所以在這里可以省略成只寫一個name;
(7)函數(shù)簡寫
hello:function(){
}
簡寫:
寫法一:hello(){
}
寫法二:hello()=>{
}
tips:在箭頭函數(shù)中,其內(nèi)部不存在this,如果出現(xiàn)了this,只會往上一級尋找this變量;
普通的function中才會有this;
eg:
hello:x=> x * x
tips:該函數(shù)等同于hello:function(x){
return x * x
}
(8)展開運算符
以下兩式等同,...相當于apply。數(shù)組將會被拆分每一個元素都會分別調(diào)用方法。
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)
總結(jié)
以上是生活随笔為你收集整理的php中nodethirtythree,node常用模块 - LinearLaw的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq会员加速卡怎么使用(PC版官方网站)
- 下一篇: 20.98-29.98 万元,2023