nodejs.org nodejs手冊
www.npmjs.com 可以尋找模塊。
第六課主要內容:
- nodejs的模塊
- nodejs文件操作(fs)
- nodejs的io鍵盤交互(readline)
- nodejs的url判斷渲染模版(url)
組件化開發
nodejs 模塊
- require 引入模塊(引入自定義模塊,可省略.js,./當前路徑)
- exports 將我們的代碼函數聲明成為一個模塊(一個文件定義一個模塊)。
nodejs文件操作(fs模塊)
- fs.readFile(‘文件名’,‘回調函數’); 讀文件模塊。
var fs = require('fs');//引入模塊
fs.readFile('a.txt',function(err,data){
if(err){
console.log(err);
}else{
console.log(data.toString());
}
}); - fs.writeFile(‘要寫入的文件名’,‘寫入的數據源’,‘回調函數’); 寫文件模塊
fs.writeFile('message.txt', 'Hello Node.js', (err) => {
if (err) throw err;
console.log('It's saved!');
});
nodejs的io鍵盤交互(readline 模塊)
require 引入模塊
createInterface 實例化模塊(必須的兩個參數)
1
var rl = readline.createInterface({
input:procees.stdin,
output:process.stdout
});
2
var rl = readline.createInterface(
procees.stdin,
process.stdout
);on(xxxx,callback) 綁定操作
一些方法
(1) close();
rl.close();//退出輸入,并返回到命令行
rl.on('close',(){
process.exit(0);//要用這種方式,不會返回命令行!
});
(2) prompt(); 顯示提示信息
(3) setPrompt('提示信息') 設置輸入提示
(4) pause();暫停
(5) question('問題',(answer)=>{}); 自帶問題,回答直接輸出。
(6) resume(); 還真不理解到底有什么用??如何使用。。
(7) write('內容','可選');
rl.write('輸出一句話');
rl.write(null,{ctrl:true,name:'c'}); //相當于按鍵盤ctrl+c
(8) line 監聽輸入狀態,回車以后就會執行。小實例
var readline = require('readline');
var rl = readline.createInterface({
input:procees.stdin,
output:process.stdout
});
rl.setPrompt('請輸入字符:')
rl.prompt();//輸出提示語
rl.on('line',(line)=>{
var str = line.trim();//接收鍵盤輸入的字符
console.log('您輸入的字符是:'+str);
rl.prompt();
}).on('close',()=>{
console.log('exit');//
process.exit(0);//關閉
});
nodejs的url判斷渲染模版(url 模塊)
var http = require('http');
var fs = require('fs');
var urlapi = require('url')
http.createServer(function(req,res){
var url = urlapi.parse(req.url);
console.log(url.pathname);
}).listen(8888,'192.168.1.1');
作業:
- nodejs實現io鍵盤交互或者瀏覽器輸入交互(周二)
- nodejs判斷url請求渲染2個簡單的模板(周二)
- 寫3個靜態的頁面,首頁,列表頁,詳情頁(周三晚上之前)