1. 程式人生 > >websocket和 node.js 安裝配置

websocket和 node.js 安裝配置

隨筆-82  文章-0  評論-3 

Windows下Node.js+Express+WebSocket 安裝配置

Linux參考:

Linux安裝Node.js 

使用Express搭建Web伺服器  

 

 

Node.js是一個Javascript執行環境(runtime)。實際上它是對Google V8引擎進行了封裝。V8引 擎執行Javascript的速度非常快,效能非常好。Node.js對一些特殊用例進行了優化,提供了替代的API,使得V8在非瀏覽器環境下執行得更好。Node.js是一個基於Chrome JavaScript執行時建立的平臺, 用於方便地搭建響應速度快、易於擴充套件的網路應用。Node.js 使用事件驅動, 非阻塞I/O模型而得以輕量和高效,非常適合在分散式裝置上執行的資料密集型的實時應用。

  Express 是一個基於 Node.js 平臺的極簡、靈活的 web 應用開發框架,它提供一系列強大的特性,幫助你建立各種 Web 和移動裝置應用。Express 也是官方推薦的Web框架。

如何在window環境下跑起來一個網站:

1 安裝node.js

2 新建一個資料夾nodejs_express

3 開啟cmd ,定位到nodejs_express下

 

複製程式碼程式碼如下:


E:\myapp\nodejs_express

 

4 專案初始化 npm init,走完配置後,會在資料夾下生成一個檔案:

  package.json

5 安裝Express :npm install express,安裝成功後,會在資料夾下生成一個node_modules目錄

6 Express專案初始化 express (express hello)

7 安裝依賴包npm install serve-favicon morgan cookie-parser body-parser path;>npm install jade

更簡單的是:

進入專案目錄,安裝nodejs依賴模組npm install (cd hello ;npm install )

8 啟動npm start,並用本地IP的3000埠進行訪問

9 埠號可以在bin/www檔案中進行修改

以上所述是小編給大家介紹的Node.js+Express配置入門教程的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對指令碼之家網站的支援!

 

 

Windows平臺下的node.js安裝

直接去nodejs的官網http://nodejs.org/上下載nodejs安裝程式,雙擊安裝就可以了

 

  1. 從node官網下載安裝檔案,官網地址:http://nodejs.org/

  2.  

    這個安裝程式也很常規,順序點選下一步就可以,或者做一些簡單的選擇,無需多說,只需強調一點,其中一步如圖所示:Add To Path一定要選上。這個的作用簡單說就是,在windows命令列新增node相關命令,詳細請自行百度。

     

  3.  

    我們非常愉快地把node安裝完成,然後安裝express,express是node官方唯一推薦的一個web框架,提供很多基礎方便的功能。

  4. 4

    在命令列中執行 "npm install -g express"等待下載並且自動完成安裝。測試express完成安裝的一個方法就是檢視其版本號,執行命令 “express -V”正常情況下回輸出版本號如圖,但有遇到不正常情況的,會提示“express不是內部或外部命令”,這樣問題就來了,這是什麼原因呢?

    windows下安裝nodejs及框架express

  5. 5

    有兩種可能:①在第二步安裝node是沒有新增環境變數,這種情況把node新增的環境變數即可解決。②express 4.x版本中將命令工具分出來了,需要再安裝一個命令工具,執行命令“npm install -g express-generator”完成後再測試就可以了。

測試安裝是否成功:

在命令列輸入 node –v 應該可以檢視到當前安裝的nodejs版本號

簡單的例子
寫一段簡短的程式碼,儲存為helloworld.js,大致看下nodejs是怎麼用的。

如下:該程式碼主要是建立一個http伺服器。

[javascript] view plain copy

 

  1. var http = require("http");  
  2. http.createServer(function(request, response) {  
  3.     response.writeHead(200, {"Content-Type": "text/html"});  
  4.     response.write("Hello World!");  
  5.     response.end();  
  6. }).listen(8080);  
  7. console.log("Server running at http://localhost:8080/");  

 

開啟命令列,轉到當前檔案所存放的路徑下,執行 node helloworld.js命令即可

如果一切正常,可以看到命令列輸出:Server running at http://localhost:8080/

同時,在瀏覽器輸入http://localhost:8080/,可以看到一個寫著helloworld的網頁。


 

使用Express作為Web伺服器

Express是nodejs常用的一個框架。

a) 全域性安裝 

 

[plain] view plain copy

 

  1. npm install express -gd  

 

b) 安裝在當前資料夾下 

 

[plain] view plain copy

 

  1. npm install express  

 

安裝成功後,命令列會提示 npm info ok

-g代表安裝到NODE_PATH的lib裡面,而-d代表把相依性套件也一起安裝。如果沒有-g的話會安裝目前所在的目錄(會建立一個node_modules的資料夾)。

 

 

在專案中引用express包

例:

 

[javascript] view plain copy

 

  1. var express = require('express');  
  2. var app = module.exports = express.createServer();  

 

如果沒有安裝過express,那麼首先需要在當前專案資料夾下安裝一個express

命令列轉到當前路徑後,執行

 

[plain] view plain copy

 

  1. npm install express  

 

安裝完成後,可以看到當前目錄下多了一個【node_modules】資料夾,下有一個【express】資料夾

注:專案中引用的包,都會被安裝到【node_modules】資料夾

 

用express建立專案

在命令列中輸入【express 專案名稱】,就可以在當前資料夾下建立一個新的專案

如圖:

包括以下幾個檔案:

 

用此方法,只是建立了一個空的專案框架,和一個簡單的例項程式,執行app.js可以檢視(還需要在專案檔案目錄下,安裝jade包,方法類似安裝express)

 

使用websocket建立通訊

Nodejs實現websocket的4種方式:socket.io、WebSocket-Node、faye-websocket-node、node-websocket-server,這裡主要使用的是socket.io

1、服務端:

1)首先安裝socket.io

 npm  install  socket.io

2)server.js

 

[javascript] view plain copy

 

  1. var app = require('http').createServer(handler),   
  2.     io = require('socket.io').listen(app),   
  3.     fs = require('fs')  
  4.   
  5. app.listen(8080);  
  6. io.set('log level', 1);//將socket.io中的debug資訊關閉  
  7.   
  8. function handler (req, res) {  
  9.   fs.readFile(__dirname + '/index.html',function (err, data) {    
  10.     if (err) {  
  11.       res.writeHead(500);  
  12.       return res.end('Error loading index.html');  
  13.     }      
  14.     res.writeHead(200, {'Content-Type': 'text/html'});      
  15.     res.end(data);  
  16.   });  
  17. }  
  18.   
  19. io.sockets.on('connection', function (socket) {  
  20.     socket.emit('news', { hello: 'world' });  
  21.     socket.on('my other event', function (data) {  
  22.       console.log(data);  
  23.     });  
  24. });  


2、客戶端:

 

1)websocket是html5標準,瀏覽器內部已經支援了,其程式設計介面大致有connect、close、open、send幾個介面,如果要使用瀏覽器原生的方式編寫websocket,比較繁瑣,所以可以下載一個客戶端庫方便程式設計,這裡使用的是socket.io客戶端庫,點選開啟連結

 

2)index.html

 

[html] view plain copy

 

  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5.     <title>Ssocket</title>  
  6.     <script type="text/javascript" src="https://cdn.socket.io/socket.io-1.3.5.js"></script>       
  7. </head>  
  8.   
  9. <body>  
  10.     <script type="text/javascript">  
  11.       var socket = io.connect('http://localhost:8080');       
  12.       socket.on('news', function (data) {      
  13.         alert(data.hello);  
  14.         socket.emit('my other event', { my: 'data' });  
  15.       });  
  16.     </script>  
  17.       
  18. </body>  
  19. </html>  


3、測試:

 

啟動服務端nodejs程式碼:node  server.js

在瀏覽器輸入 http://localhost:8080/index.html


瀏覽器打印出: world


命令列打印出:{ my: 'data' }