當前位置:首頁 » 雲伺服器 » node如何搭建伺服器

node如何搭建伺服器

發布時間: 2023-06-07 00:23:45

㈠ 如何用nodejs搭建web伺服器

使用Node.js搭建Web伺服器是學習Node.js比較全面的入門教程,因為實現Web伺服器需要用到幾個比較重要的模塊:http模塊、文件系統、url解析模塊、路徑解析模塊、以及301重定向技術等,下面我們就一起來學習如何搭建一個簡單的Web伺服器。

作為一個Web伺服器應具備以下幾個功能:

1、能顯示以.html/.htm結尾的Web頁面

2、能直接打開以.js/.css/.json/.text結尾的文件內容

3、顯示圖片資源

4、自動下載以.apk/.docx/.zip結尾的文件

5、形如http://xxx.com/a/b/ , 則查找b目錄下是否有index.html,如果有就顯示,如果沒有就列出該目錄下的所有文件及文件夾,並可以進一步訪問

6、形如http://xxx.com/a/b, 則作301重定向到http://xxx.com/a/b/ , 這樣可以解決內部資源引用錯位的問題。

引入需要用到的幾個模塊:


//http協議模塊varhttp = require('http');//url解析模塊varurl = require('url');//文件系統模塊varfs = require("fs");//路徑解析模塊varpath = require("path");

創建服務並在指定的埠監聽:


//創建一個服務varhttpServer = http.createServer(this.processRequest.bind(this));//在指定的埠監聽服務httpServer.listen(port,function(){console.log("[HttpServer][Start]","runing at http://"+ip+":"+port+"/");console.timeEnd("[HttpServer][Start]");});

在創建服務的時候需要傳遞一個匿名函數processRequest 對請求進行處理,processRequest接收2個參數,分別是request和response, request對象中包含了請求的所有內容,response是用來設置響應頭以及對客戶端做出響應操作。


processRequest:function(request,response){varhasExt =true;varrequestUrl = request.url;varpathName = url.parse(requestUrl).pathname;//對請求的路徑進行解碼,防止中文亂碼pathName = decodeURI(pathName);//如果路徑中沒有擴展名if(path.extname(pathName) ===''){//如果不是以/結尾的,加/並作301重定向if(pathName.charAt(pathName.length-1) !="/"){pathName +="/";varredirect ="http://"+request.headers.host + pathName;response.writeHead(301, {location:redirect});response.end();return;}//添加默認的訪問頁面,但這個頁面不一定存在,後面會處理pathName +="index.html";hasExt =false;//標記默認頁面是程序自動添加的}//獲取資源文件的相對路徑varfilePath = path.join("http/webroot",pathName);//獲取對應文件的文檔類型varcontentType =this.getContentType(filePath);//如果文件名存在fs.exists(filePath,function(exists){if(exists){response.writeHead(200, {"content-type":contentType});varstream = fs.createReadStream(filePath,{flags:"r",encoding:null});stream.on("error", function() {response.writeHead(500,{"content-type":"text/html"});response.end("<h1>500 Server Error</h1>");});//返迴文件內容stream.pipe(response);}else{//文件名不存在的情況if(hasExt){//如果這個文件不是程序自動添加的,直接返回404response.writeHead(404, {"content-type":"text/html"});response.end("<h1>404 Not Found</h1>");}else{//如果文件是程序自動添加的且不存在,則表示用戶希望訪問的是該目錄下的文件列表varhtml ="<head><meta charset='utf-8'></head>";try{//用戶訪問目錄varfiledir = filePath.substring(0,filePath.lastIndexOf('\'));//獲取用戶訪問路徑下的文件列表varfiles = fs.readdirSync(filedir);//將訪問路徑下的所以文件一一列舉出來,並添加超鏈接,以便用戶進一步訪問for(variinfiles){varfilename = files[i];html +="<div><a href='"+filename+"'>"+filename+"</a></div>";}}catch(e){html +="<h1>您訪問的目錄不存在</h1>"}response.writeHead(200, {"content-type":"text/html"});response.end(html);}}});}

請求處理函數中有幾個重點需要說一下:

對於路徑中有中文的,瀏覽器會自動進行編碼(英文不變,中文會變),因此在接收到地址後,需要對地址進行解碼,否則最後得到的路徑和真實路徑不相符,

當訪問路徑不是以具體的文件結尾,並且不是以/結尾,則需要通過重定向加上/,表示當前目錄,否則當前路徑下的靜態資源會找不到

如果訪問路徑是目錄,則列出該目錄下所有文件及文件夾,並可以點擊訪問,為了讓中文目錄能正常顯示,則還要在header中設置charset=utf-8

核心代碼就這么多,大概140行左右,完整的代碼已上傳到github:https://github.com/git-onepixel/Node,

如果要運行demo,打開cmd切換到根目錄,運行node start 即可。

㈡ 如何用nodejs搭建web伺服器

[linux運維]

1、下載最新node.js二進制源碼安裝包(29MB),V8.2.1更新於2017年7月20日
wget-chttps://nodejs.org/dist/v8.2.1//node-v8.2.1.tar.gz

wget是一個Linux下載文件的工具,centos自帶。
wget-c是斷點續傳下載方式,後面的URL就是提供下載文件的地址
默認獲取的文件地址在/root目錄下,命令pwd顯示當前目錄


2、安裝必要的編譯軟體吖米
yuminstallgccgcc-c++

yum=YellowdogUpdater,Modified。改良黃狗更新器,centos自帶智能包管理器。

中途詢問,輸入y:在線下載安裝d:只下載不安裝N:不下載不安裝
Isthisok[y/d/N]:y


3、解壓源碼
tar-zxvfnode-v8.2.1.tar.gz
當前目錄/root/就會多一個node-v8.2.1的文件夾
-z:透過gzip的支持進行壓縮/解壓縮:此時文件名最好為*.tar.gz
-x:解壓縮的功能
-v:在壓縮/解壓縮的過程中,將正在處理文件名顯示出來
ffilename:-f後面要立刻接被處理的文件名


4、編譯node源碼包
1)進入到node源碼包解壓目錄
cdnode-v8.2.1
指定NodeJS安裝位置
./configure--prefix=/usr/local/node
不指定prefix,則可執行文件默認放在/usr/local/bin,
庫文件默認放在/usr/local/lib,
配置文件默認放在/usr/local/etc。
其它的資源文件放在/usr/local/share。
你要卸載這個程序,要麼在原來的make目錄下用一次makeuninstall(前提是make文件指定過uninstall),
要麼去上述目錄裡面把相關的文件一個個手工刪掉。

執行安裝文件,足足等了40多分鍾
make&&makeinstall


4、添加環境變數


>創建並打開新文件不存在node.sh文件

[[email protected]]#vim/etc/profile.d/node.sh

>輸入node安裝位置的bin目錄所在位置

exportPATH=$PATH:/usr/local/node/bin
ESC輸入:wq

提示:命令輸入錯了vim
-bash:rt:commandnotfound
-bash:vim:commandnotfound
[解決]
i.那麼如何安裝vim呢?
輸入rpm-qa|grepvim命令,如果vim已經正確安裝,會返回下面的三行代碼:
root@server1[~]#rpm-qa|grepvim
vim-enhanced-7.0.109-7.el5
vim-minimal-7.0.109-7.el5
vim-common-7.0.109-7.el5

如果少了其中的某一條,比如vim-enhanced的,就用命令yum-yinstallvim-enhanced來安裝:
yum-yinstallvim-enhanced

如果上面的三條一條都沒有返回,可以直接用yum-yinstallvim*命令
yum-yinstallvim*使用suroot

source/etc/profile.d/node.sh=./etc/profile.d/node.sh

[不間斷運行nodejs服務]
https://yq.aliyun.com/ziliao/3411

npminstallforever-g

foreverstartapp.js

㈢ 在區域網中怎麼搭建node伺服器

1.安裝nodejs服務(從官網下載安裝),node相當於apache伺服器
2.在自己定義的目錄下新建伺服器文件如 server.js
例如,我在E:\phpProject\html5\websocket下創建了server.js文件
var http = require('http');//引入http模塊
//開啟服務,監聽8888埠
//埠號最好為6000以上
var server = http.createServer(function(req,res){
console.log('有客戶端連接');//創建連接成功顯示在後台

㈣ 搭建node伺服器,初始化命令是

搭建node伺服器,初始化命令是npm,init。利用node構建本地服務,用到的模塊有http、fs、path三個模塊,其中http是用來創建服務的。fs是文件模塊,可讀寫等本地文件。path是一套用於處理和轉換文件路徑的工具集。

㈤ 如何用nodejs搭建web伺服器

主要解決兩個問題,1是靜態資源的處理,2是動態資源的路由。

靜態資源在node.js里的意思是不變的,如圖片、前端js、css、html頁面等。

動態資源我們一般指aspx頁面,ashx頁面,asp頁面,jsp頁面,php頁面等,而node.js里其實沒動態資源這一說,它對請求的處理都是由回調方法完成的,在我實現的httserver里,借鑒了ashx的寫法,把處理請求的js文件看作動態資源。

首先實現一個處理靜態資源的函數,其實就是對本地文件的讀取操作,這個方法已滿足了上面說的靜態資源的處理。

㈥ 如何用express nodejs 創建web伺服器

1、打開Dreamweaver,按照圖中標示出來的地方點擊,打開站點管理界面。
如果原來沒有站點,這里會直接顯示管理站點,直接點擊就行。

2、在彈出的管理站點界面,點擊新建按鈕,進入站點配置界面

3、在站點配置界面,輸入站點的名稱,這里是方便自己本地管理的,在站點文件夾下選擇本地的網站文件夾。

4、選擇左側伺服器選項卡,點擊選項卡下方的「+」號,彈出伺服器配置界面。

5、在伺服器配置界面,輸入伺服器名稱,管理用的,然後在鏈接方法上選擇「本地/網路」

6、輸入伺服器文件夾,這里選擇和第三步的站點路徑一樣。web url選項這里配置的是http://localhost/網站文件夾名/,配置完成保存即可。
7、打開瀏覽器輸入http://localhost/網站文件夾名/,這時就能看到自己網站的首頁了,如果沒有首頁,自己建一個txt文檔,隨便輸入幾個字就行,然後另存為index.html。如果能正常打開頁面,說明站點配置成功
注:如果是動態網站,需要提前配置好運行環境

㈦ nodejs搭建web伺服器就是這么簡單!

Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。 Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。Node.js 的包管理器 npm,是全球最大的開源庫生態系統。(nodejs官網上的介紹),正如官網上介紹的那樣,nodejs確實很牛!怎麼個牛法?看看下面的代碼就知道了。

//引入http模塊

var http = require("http");

//設置主機名

var hostName = 飗.0.0.1'

//設置埠

var port = 8080;

//創建服務

var server = http.createServer(function(req,res){

res.setHeader('Content-Type','text/plain');

res.end("hello nodejs");

});

server.listen(port,hostName,function(){

console.log(`伺服器運行在http://${hostName}:${port}`);

});

短短幾行代碼就把一個簡單的web伺服器搭建完成了,為了驗證效果,我們在瀏覽器請求,結果如下

運行成功!

到此為止,一個web伺服器就建立成功了! 沒錯就是這么簡單,然後我們就可以寫個html界面愉快的玩耍了,哈哈哈!果斷的寫了一個html頁面來請求一下我們的web伺服器。

代碼簡單,點擊p獲取數據並將伺服器返回的數據展示。好了,我們運行一下demo.html文件,我擦來!居然出現了……

很明顯,通過jquery請求不到數據,這是因為跨域請求的原因。我們的web伺服器並不支持跨域請求,所以報錯了。解決方式:在伺服器的響應頭文件里加上如下代碼:

再次重啟伺服器,運行demo.html,顯示結果很是令人欣喜!

通常請求伺服器都會拼接參數的,最常用的就是get請求,post請求。很明顯,我們現在的代碼還不能支持。express框架很好的封裝了nodejs的http模塊,使我們用起來非常的簡單。

引入express :$ cnpm install express –save

使用方式變化不大,通過express()方法開啟服務,然後在通過get方法來設置匹配參數的路由,通過在回調函數的req中可以獲取請求參數和地址。post請求也是類似,不過有不同的是,post請求在獲取參數的時候要引入body-parser 中間件,用於處理 JSON, Raw, Text 和 URL 編碼的數據。

運行結果:

完整的get以及post請求就是以上了。下一篇文章會結果fs文件模塊介紹http是如何返迴文件的,敬請期待!!

學習從來不是一個人的事情,要有個相互監督的夥伴,想要學習或交流前端問題的小夥伴可以私信「學習」小明加群獲取2019web前端最新入門資料,一起學習,一起成長!

㈧ 如何用命令行開啟nodejs搭建web伺服器

首先,需要安裝nodejs,這個可以去官網下載,目前我本地安裝的v0.12版本。

安裝完成後可以通過命令行測試安裝是否成功,輸入:node -v,應該會顯示當前安裝node版本號。


本文中用到的模塊,都是nodejs核心模塊,不需要從外部下載,如果有需要,可以使用以下命令安裝:npm install xxx。


開始
下一步,新建js文件,可以命名為server.js,代碼如下:
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
var dir, arg = process.argv[2] || ''; // 命令行第三個參數,用來接收目錄,可為空,相對當前server.js文件的目錄名稱


// 比如使用命令 node server debug,意思就是debug文件夾與server.js文件同級
// 且你想以debug文件夾啟動web服務



http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname;

㈨ 如何使用nodejs快速搭建本地伺服器

express+mongodb可以快速建站,nodejs自己也有http模塊,直接listen一個埠,localhost:埠號 就可以訪問了

熱點內容
8uftp上傳網站 發布:2025-02-13 03:01:57 瀏覽:242
電腦玩游戲如何配置電源 發布:2025-02-13 03:01:53 瀏覽:361
微信怎麼上傳頭像不了 發布:2025-02-13 02:57:04 瀏覽:118
c語言矩陣的轉置 發布:2025-02-13 02:38:43 瀏覽:624
rowphp 發布:2025-02-13 02:37:16 瀏覽:711
光遇安卓服周年傘在哪裡領取 發布:2025-02-13 02:22:18 瀏覽:674
寫mv腳本軟體 發布:2025-02-13 02:21:56 瀏覽:696
超內核源碼 發布:2025-02-13 02:12:54 瀏覽:444
趣粉腳本 發布:2025-02-13 02:11:23 瀏覽:952
壓縮的茶葉怎麼弄開 發布:2025-02-13 02:11:16 瀏覽:739