fs內置模塊:實現I/O操作
-
fs.mkdir/ fs.mkdirSync
:創建文件夾,有Sync的是同步創建,反之異步
let fs = require('fs');
fs.mkdir('./less', err => {
if (err) {
console.log(err);
return;
}
console.log('ok');
});
console.log(1);
//=> 1 'ok'
2.fs.readdir / fs.readdirSync
:讀取文件目錄中的內容
let fs = require('fs');
fs.readdir('./css', (err, result) => {
if (err) {
console.log(err);
return;
}
console.log(result); //=> 返回的結果是一個數組
})
-
fs.rmdir
:刪除文件夾
let fs = require('fs');
fs.rmdir('./less', err => { //=> 刪除文件夾必須保證文件夾是空的
if (err) {
console.log(err);
return;
}
console.log('ok');
});
4.fs.readFile
:讀取文件中的內容
let fs = require('fs');
fs.readFile('./less/1.less', 'utf8', (err, result) => {
//=> 不設置UTF-8編碼格式,讀取出來的是BUFFER格式的數據,設置后讀取到的是字符串格式的數據
if (err) {
console.log(err);
return;
}
console.log(result);
});
-
fs.writeFile
:向文件中寫入內容(覆蓋寫入)
let fs = require('fs');
fs.writeFile('./less/1.less', '哈哈', 'utf8', err => {
if (err) {
console.log(err);
return;
}
console.log('ok');
});
// 1.less
哈哈
-
fs.appendFile
:追加寫入新內容(原有的內容還在)
let fs = require('fs');
fs.appendFile('./less/1.less', '哈哈', 'utf8', err => {
if (err) {
console.log(err);
return;
}
console.log('ok');
});
// 1.less
哈哈哈哈
-
fs.copyFile
:拷貝文件到新的位置
let fs = require('fs');
fs.copyFile('./package.json','./less/111.json',err=>{
// 把package.json拷貝到less目錄下
if(err){
console.log(err);
return;
}
console.log('ok');
});
-
fs.unlink
:刪除文件
let fs = require('fs');
fs.unlink('./less/1.less',err=>{
if(err){
console.log(err);
return;
}
console.log('ok');
});
URL內置模塊
url.parse(url[,flag])
:把一個URL地址進行解析,把地址中的每一部分按照對象鍵值對的方式存儲起來
let url = require('url');
console.log(url.parse('https://dnf.qq.com/act/dnf2018?form=qq&lx=game#video'));
{
protocol: 'https:', // 協議
slashes: true, // 是否有斜線
auth: null,
host: 'dnf.qq.com', // 域名+端口
port: null, // 端口
hostname: 'dnf.qq.com', // 域名
hash: '#video', // 哈希值
search: '?form=qq&lx=game', // 問號傳遞的參數[string]
query: 'form=qq&lx=game', // 問好傳遞的參數,不包括問號
pathname: '/act/dnf2018', // 請求資源的路徑名稱
path: '/act/dnf2018?form=qq&lx=game',
href: 'https://dnf.qq.com/act/dnf2018?form=qq&lx=game#video'
}
// 第二個參數默認是FALSE,設置為TRUE可以把問號傳參的部分也解析成為對象鍵值對的方式
console.log(url.parse('https://dnf.qq.com/act/dnf2018?form=qq&lx=game#video', true));
{
...
query: { form: 'qq', lx: 'game' }
...
}
HTTP內置模塊
createServer(callback)
:創建web服務
callback中含有兩個參數req和res,分別表示請求對象和響應對象
// 使用http模塊創建web服務
let server = http.createServer(); //=> 創建WEB服務
server.listen(); //=> 監聽端口
// 演示
let http = require('http');
let port = 6666;
http.createServer((req, res) => { // 服務創建成功且接收請求時觸發
//=>REQ:REQUEST 請求對象,包含了客戶端請求的信息
// req.url 存儲的是請求資源的路徑地址及問號傳參
// req.method 客戶端請求的方式
// req.headers 客戶端的請求頭信息,它是一個對象
let { url, method, headers } = req;
console.log(url, method, headers);
//=>RES:RESPONSE 響應對象,包含了一些屬性和方法,可以讓服務器端返回給客戶端內容
// res.write 基于這個方法,服務器端可以向客戶端返回內容
// res.end 結束響應
// res.writeHead 重寫響應頭信息
res.end('23333');
}).listen(port, () => { // 服務創建成功,且端口號監聽成功(不被占用)時觸發
console.log(`The server is created at port ${port}`)
})