Node.js基本讲解
什么是Node.js?
簡單的說 Node.js 就是運行在服務端的 JavaScript。Node.js 是一個基于Chrome JavaScript 運行時建立的一個平臺。
Node.js有兩種模式,一種是腳本模式,一種是交互模式。
Node.js框架,比較熱門的有 express,koa,hapi。其中express是最熱門的框架,用的比較多,文檔比較全,較穩定,而且很全面。koa太過于超前,不是很穩定,正在完善中。hapi框架太過于復雜,適合超大型的項目,做一個簡單的程序就需要大量的環境堆砌。
http是nodejs里邊自帶的一個模塊,可以用require方法導入,比如:
1 var http = require("http");現在我們就已經用http創建了一個web服務,http中自帶一個function叫createServer,里邊有兩個參數,request和response,request是瀏覽器發送給服務器的請求,response是服務器對瀏覽器的響應。
1 http.createServer(function(request,response){ 2 if (request.url!=="/favicon.ico") { //清除瀏覽器的第二次訪問 3 //200代表的是http的狀態:OK 4 response.writeHead(200,{"content-Type":"text/html;charset = utf-8"}); 5 //對前端的響應 6 response.write("你好"); 7 console.log("被訪問"); 8 response.end(); 9 } 10 }).listen(8000);//監聽8000端口(本地端口)這里用的是蘋果電腦,接下來是用終端來操作。首先在終端中通過cd回到主要菜單,ls查看里邊包括的文件夾,cd打開對應的文件夾,這樣一級一級打開,找到我們創建的文件,之后輸入node + 文件名。之后在瀏覽器中打開localhost:8000,就可以訪問自己寫的js了。
調用函數的代碼:
1 var http = require("http"); 2 http.createServer(function(request,response){ 3 if (request.url!=="/favion.ico") { 4 response.writeHead(200,{"content-Type":"text/html;charset = utf-8"}); 5 eat(response,"餃子"); 6 response.end(); 7 } 8 }).listen(8000); 9 console.log("服務器在本地的8000端口上"); 10 function eat(res,food){ 11 res.write(food); 12 }node.js里邊的類,包含屬性和函數,繼承關系。我們新建一個文件,里邊內容是:
1 function User(id,name){ 2 this.id = id; 3 this.name = name; 4 this.eat = function(){ 5 return "吃東西"; 6 } 7 }但是我們想讓外部使用必須想辦法,我們有倆中辦法:
第一種方法:global.waring是一種,全局文件都可以用但是node.js不推薦使用;
第二種方法:node.js中每個模塊中都有一個屬性叫module,module代表模塊本身,里邊有一個屬性是exports,可以導出。例如:
1 module.exports = User;接下來是引入這個文件
1 var temp = require("./node_03.js");在網頁上顯示“吃東西”。
1 var http = require("http"); 2 http.createServer(function(request,response){ 3 if (response.url!=="/favion.ico") { 4 response.writeHead(200,{"content-Type":"text/html;charset = utf-8"}); 5 var node = new temp(); 6 response.write(node.eat()); 7 response.end(); 8 } 9 }).listen(8000);我們看看module的屬性都有哪些:
http是一個模塊,這個模塊中有一個屬性是STATUS_CODES是一個對象,里邊的各種屬性的值都是狀態嗎,屬性的值是每個狀態的解釋。
request中的屬性有4個:
post 的request-> data 和 end 倆個事件? 可以設立對這倆個事件的監聽函數
處理post請求:
1 var content = "哈哈"; 2 request.on("data",function(a){ 3 content += a; 4 }); 5 request.on("end",function(){ 6 response.writeHead(200,{"Content-Type":"text/html;charset = utf-8"}) ; 7 response.write("你發送了"+content); 8 response.end(); 9 })接下來這段代碼用于生成https協議密匙,我們在終端里邊這樣寫:
1 openssl genrsa -out key.em 2 openssl req -new -key key.pem -out csr.pem 3 openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.nem 4 rm csr.pem這是在終端的樣子:
可能會無法創建這個不要緊,只要從網上再搜一些這方面的代碼就行。
1 var https = require("https"); 2 var fs = require("fs"); 3 4 var options = { 5 key:fs.readFileSync("key.pem"), 6 cert:fs.readFileSync("cert.pem"), 7 }; 8 9 var server = https.createServer(options,function(request,response){ 10 response.writeHead(200,{"Content-Type":"text/html;charset = utf-8"}); 11 response.end("hello world"); 12 }).listen(8000);node內置的https支持
1 var server = https.createServer({ 2 key:privateKey, 3 cert:certificate, 4 ca:certificateAuthoritycertificate 5 },app);?
轉載于:https://www.cnblogs.com/hgs-159/p/6052225.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Node.js基本讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AJAX中UPDATEPANEL配合TI
- 下一篇: BZOJ1061: [Noi2008]志