1.創(chuàng)建服務(wù)器
//require表示引包沿彭,引包就是引用自己的一個(gè)特殊功能
var http = require("http");
//創(chuàng)建服務(wù)器蔑滓,參數(shù)是一個(gè)回調(diào)函數(shù),表示如果有請(qǐng)求進(jìn)來,要做什么
var server = http.createServer(function(req,res){
//req表示請(qǐng)求巢块,request; res表示響應(yīng),response
//設(shè)置HTTP頭部巧号,狀態(tài)碼是200族奢,文件類型是html,字符集是utf8
res.writeHead(200,{"Content-type":"text/html;charset=UTF-8"});
res.end("哈哈哈哈丹鸿,我買了五個(gè)iPhone" + (1+2+3) + "s");
});
//運(yùn)行服務(wù)器歹鱼,監(jiān)聽3000端口(端口號(hào)可以任改,此時(shí)的是‘127.0.0.1’)
server.listen(3000,"127.0.0.1");
- 1.1.4 HTTP模塊
Node.js中,將很多的功能卜高,劃分為了一個(gè)個(gè)mudule弥姻,大陸的書翻譯為模塊南片;臺(tái)灣的書,翻譯為模組庭敦。
這是因?yàn)樘劢幸恍┏绦蛐枰褂胒s功能(文件讀取功能),有一些不用的秧廉,所以為了效率伞广,你用啥,你就require啥疼电。
1.1.5 URL模塊
我們現(xiàn)在來看一下req里面能夠使用的東西嚼锄。
最關(guān)鍵的就是req.url屬性,表示用戶的請(qǐng)求URL地址蔽豺。所有的路由設(shè)計(jì)区丑,都是通過req.url來實(shí)現(xiàn)的。
我們比較關(guān)心的不是拿到URL修陡,而是識(shí)別這個(gè)URL沧侥。
識(shí)別URL,用到url模塊
假設(shè)我們?cè)L問http://127.0.0.1:3000/hcd?name=1
則console.log(url)為:
Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '',
query: {},
pathname: '/hcd?name=1',
path: '/hcd?name=1',
href: '/hcd?name=1'
}
4.1.1.7 fs模塊
fs. mkdir()創(chuàng)建文件夾
fs.stat(path, callback) 查看path路徑的文件的狀態(tài)魄鸦,callback為查看完后的回調(diào)函數(shù)
3.讀取文件或者文件夾
讀取文件:
fs.readFile('/etc/passwd', (err, data) => {
if (err) throw err;
console.log(data);
});
4.更改文件的名字
fs.rename([oldpath],[newpath],callback)
5.### 1.1.8 path模塊
API http://nodejs.cn/api/path.html#path_path_extname_path
path.extname() 方法返回 path 的擴(kuò)展名宴杀,
即從 path 的最后一部分中的最后一個(gè) .(句號(hào))字符到字符串結(jié)束。 如果 path 的最后一部分沒有 . 或 path 的文件名(見 path.basename())的第一個(gè)字符是 .拾因,則返回一個(gè)空字符串旺罢。
6.node.js 實(shí)時(shí)聊天,客戶端邏輯強(qiáng)大的單頁APP
- node 單線程, 異步回調(diào)解決高并發(fā)的場合