node.js四個常用包
const http=require('http');//建立服務
const fs=require('fs');//文件相關操作
const querystring=require('querystring');//解析解析url參數
const url = require('url');//處理url
指定文件寫入數據
指定文件寫入數據如果沒有那個文件則創建
fs.writeFile(path,data,calback(err))
path:路徑
data:數據
callback:回調函數
讀取指定文件
fs.readFile(path,callback(err,data))
創建服務
let server=http.createServer((req,res)=>{
//req:接收請求
//res:發送請求
}).listen(8080)
request相關方法
- req.method:獲取頁面請求方式(post/get)
- res.write(data):頁面寫入數據
- res.end();數據寫入完畢
- res.url:返回用戶請求的url
解析get&post
get
第一種方法
let [url,query] = req.url.split('?');//將地址與參數分隔
let get = querystring.parse(query);//解析get數據
{name:test,pwd:123}
第二種方法
let result = url.parse(req.url,true);//第二個參數爲true表示一併解析get數據
//將地址與get數據分開
let {path,data} = url.parse(req.url,true);
post
//由於post數據較大時是分段發送的因此服務器要分段接收
let arr = [];//定義一個數組接收post數據
req.on('data',buffer=>{
//如果有post數據過來將其添加到數組
arr.push(buffer);
});
req.on('end',()=>{
let buffer = Buffer.concat(arr);
//當數據發送完畢時,使用buffer對象連接數據
querystring.parse(buffer);
//利用querystring解析post數據類似於name=er$pass=45
//解析爲 {name:er,pass:45}
})
node模塊
定義模塊
1.定義模塊
一個文件就是一個模塊
通過module對象 實現批量導出
module.exports={
a:12,b:45
}
通過exports對象導出一個
exports.a = 12;
//導出函數
exports.funcname=function(){}
引入模塊
const mode = require('./mode.js')//必須加路徑
如果不想加路徑,直接把模塊放在node_modules目錄
const mode = require('mode');
console.log(mode.a)
常用系統模塊
- 1.assert:斷言
assert(條件,‘條件不成立輸出的信息’)
可用在大型模塊/函數,每一階段斷言測試或函數參數校驗
assert.deepEqual(變量,預期值,msg)比較 成員相當於==
assert.deepStrictEqual(變量,預期值,msg) 深度比較相對於===
- 2.path:路徑
路徑拼接,信息獲取
path.dirname(url) 返回文件目錄
path.extname(url) 返回文件擴展名
path.basename(url) 返回文件名.擴展名
path.resolve() 將路徑解析單一路徑
如
path.resolve('root/a/b','../c','build','..','scrt');
//返回 root/a/c/scrt
獲取當前文件的絕對路徑
path.resolve(__dirname,'build')
//返回www/text/build
- 3.url :網址
url.parse(str);解析網址相關信息.
url.parse(str.true);將url參數解析爲json格式 - 4.querystring :請求數據
querystring.parse(url參數) 將url參數解析json
…stringify({a:1:b2}) 將json轉譯爲url參數形式