一、模塊系統 1.創建模塊和引用模塊 2.服務端的模塊 二、函數 三、路由 四、全局對象 1.在 node中有一個全局對象為global。所有的全局對象都可以在global找到。當然不包括他自己。而在瀏覽器中的全局對象為window 2.__filename 表示當前正在執行的腳本的文件名。它將輸出 ...
一、模塊系統
1.創建模塊和引用模塊
//如何創建一個模塊 exports.hello = function(){ console.log('hello worl'); }; //這創建了一個模塊
//如何引用模塊 //1.require(); var hello = require('./module.js'); hello.hello(); //2. var {hello} = require('./module.js'); hello();
2.服務端的模塊
//服務端的模塊 var http = require('http'); http.createServer(function(request,response){ }); //http 模塊放在哪裡的呢? 模塊的載入順序又是什麼樣的呢? /* * 1. 當require(); 一個模塊的時候 首先會去 文件模塊緩衝區去找 * 如果存在,直接exports出來 * 2.如果沒有找到,在去原生模塊緩衝區去找 => 原生模塊 => 緩存 => exports * * 3.沒有找到就去文件系統 * */
二、函數
//其實就javascript中的函數。 var lan = function(lang){ console.log(lang); } function say(factory,lang){ factory(lang); } say(lan,'chinese'); var http = require('http'); http.createServer(function(request,response){ response.writeHead(200,{'Content-Type':'text/plain;charset=utf8'}); response.write('hello world'); response.end(); }).listen(3000);
三、路由
var http = require('http'); var url = require('url'); http.createServer(function(request,response){ var pathname = url.parse(request.url,true).pathname; //http://localhost:8080/user console.log(pathname); //pathname /user /* http://localhost:8080/admin pathname => /admin */ response.writeHead(200,{'Content-Type':'text/plain;charset=utf8'}); response.write('這個路徑是:' + pathname); response.end(); }).listen(8080);
四、全局對象
1.在 node中有一個全局對象為global。所有的全局對象都可以在global找到。當然不包括他自己。而在瀏覽器中的全局對象為window
2.__filename 表示當前正在執行的腳本的文件名。它將輸出這個文件的絕對路徑
3.__dirname 表示當前正在執行腳本的目錄
4.setTimeout => clearTimeout || setInterval => clearInterval
5.console => api較多
6.process 方法較多。 主要描述node 的進程情況
五、GET、POST請求。
1.GET請求(其實就是參數帶在url上吧)
var http = require('http'); var url = require('url'); var fs = require('fs'); var data = ''; var readStream = fs.createReadStream('get.html'); readStream.on('data',function(chunk){ data += chunk; }); readStream.on('end',function(){ console.log('獲取html完畢'); }); http.createServer(function(request,response){ var params = url.parse(request.url,true).query; var userName = params.userName; var userPhone = params.userPhone; //http://localhost:8888/get.js?userName=node&userPhone=10086 console.log(userName,userPhone);// node 10086 response.writeHead(200,{'Content-Type':'text/html;charset=utf8'}); if(!!userPhone && !!userName){ response.write('<h1>保存成功</h1>') }else{ response.write(data); }; response.end(); }).listen(8888); console.log('node server start 127.0.0.1:8888')
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="./get.js" method="GET"> <input type="text" name="userName"> <input type="text" name="userPhone"> <input type="submit" value="提交"> </form> </body> </html>
2.POST請求 (參數沒有暴露在url上獲取參數的方式和GET有很大的區別);
var http = require('http'); var querystring = require('querystring'); var fs = require('fs'); var data = ''; var readStream = fs.createReadStream('post.html'); readStream.on('data',function(chunk){ data += chunk; }); readStream.on('end',function(){ console.log('獲取html完畢'); }); http.createServer(function(request,response){ var postData = ''; request.on('data',function(chunk){ postData += chunk; }); request.on('end',function(){ var params = querystring.parse(postData); console.log(postData); var userName = params.userName; var userPhone = params.userPhone; //http://localhost:8888/post.js console.log(userName,userPhone);// node 119 response.writeHead(200,{'Content-Type':'text/html;charset=utf8'}); if(!!userPhone && !!userName){ response.write('<h1>保存成功</h1>') }else{ response.write(data); }; response.end(); }); }).listen(8888); console.log('node server start 127.0.0.1:8888')
post.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="./post.js" method="POST"> <input type="text" name="userName"> <input type="text" name="userPhone"> <input type="submit" value="提交"> </form> </body> </html>
六、結束語
Node.js的入門教程就完畢了。寫得比較簡潔,也沒有貼圖。我覺得作為一個程式員。學習能力固然重要,但更重要的是動手能力。每個方法都去敲一遍了,自然就明白這個方法
有什麼用了。沒有什麼東西去敲一遍解決不了的,如果非要說有那就多敲2遍。
Node.js的基礎知識很多,這2篇博文的挑了些,比較重要的說了下。其中主要是文件系統,文件流,路由,GET\POST。模塊知識在工作中會經常遇到。當然在實際項目會用不到這些,因為都會藉助express框架。來進行項目開發。但當我們瞭解其原理。操作起來就根據得心應手了。
沒有什麼坎坷是過不去的,加油!Comm on!