欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用node.js搭建簡(jiǎn)單web服務(wù)器的方法教程

 更新時(shí)間:2017年02月20日 10:44:19   作者:xishiyi7  
本文主題是使用node來搭建最簡(jiǎn)單的web服務(wù)器,其后可以自己根據(jù)需要深入了解,目前在開發(fā)過程中可以用來模擬與服務(wù)器進(jìn)行簡(jiǎn)單的交互,比如返回的資源控制等。需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。

前言

使用Nodejs搭建Web服務(wù)器是學(xué)習(xí)Node.js比較全面的入門教程,因?yàn)橐瓿梢粋€(gè)簡(jiǎn)單的Web服務(wù)器,你需要學(xué)習(xí)Nodejs中幾個(gè)比較重要的模塊,比如:http協(xié)議模塊、文件系統(tǒng)、url解析模塊、路徑解析模塊、以及301重定向問題,下面我們就簡(jiǎn)單講一下如何來搭建一個(gè)簡(jiǎn)單的Web服務(wù)器。

早先不使用web服務(wù)器的情況下想要在瀏覽器端訪問本地資源,可以利用firefox瀏覽器,其可以自己?jiǎn)?dòng)一個(gè)小型web服務(wù)器。
為了讓剛接觸node的人也能大體看懂,本文的代碼我將盡量簡(jiǎn)化。

準(zhǔn)備

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

安裝完成后可以通過命令行測(cè)試安裝是否成功,輸入:node -v,應(yīng)該會(huì)顯示當(dāng)前安裝node版本號(hào)。
本文中用到的模塊,都是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] || ''; // 命令行第三個(gè)參數(shù),用來接收目錄,可為空,相對(duì)當(dāng)前server.js文件的目錄名稱
 // 比如使用命令 node server debug,意思就是debug文件夾與server.js文件同級(jí)
 // 且你想以debug文件夾啟動(dòng)web服務(wù)

 http.createServer(function (req, res) {
 var pathname = __dirname + url.parse(req.url).pathname;
 dir = dir ? dir : pathname; // 記住dir(目錄)
 pathname = dir ? pathname.replace(dir, dir + arg + '/') : pathname; // 替換文件靜態(tài)路徑
 if (path.extname(pathname) == "") {
 pathname += "/";
 }
 if (pathname.charAt(pathname.length - 1) == "/") {
 pathname += "index.html"; // 入口文件,此處默認(rèn)index.html
 }

 fs.exists(pathname, function (exists) {
 if (exists) {
 switch (path.extname(pathname)) {
 case ".html":
 res.writeHead(200, {"Content-Type": "text/html"});
 break;
 case ".js":
 res.writeHead(200, {"Content-Type": "text/javascript"});
 break;
 case ".css":
 res.writeHead(200, {"Content-Type": "text/css"});
 break;
 case ".gif":
 res.writeHead(200, {"Content-Type": "image/gif"});
 break;
 case ".jpg":
 res.writeHead(200, {"Content-Type": "image/jpeg"});
 break;
 case ".png":
 res.writeHead(200, {"Content-Type": "image/png"});
 break;
 default:
 res.writeHead(200, {"Content-Type": "application/octet-stream"});
 }

 // res可以自己添加信息來簡(jiǎn)單交互 比如可以修改點(diǎn)header信息 或者修改返回的資源數(shù)據(jù)
 fs.readFile(pathname, function (err, data) {
 res.end(data);
 });
 }
 else {
 res.writeHead(404, {"Content-Type": "text/html"});
 res.end("<h1>404 Not Found</h1>");
 }
 });
 }).listen(8085, "127.0.0.5"); // 服務(wù)器端口

 console.log("server running at http://127.0.0.5:8085/");

啟動(dòng)

當(dāng)node安裝完成及上述server.js文件也新建好之后。將其與你要訪問的文件夾放在一起,可以放同層或者直接下層。比如,如果你要訪問d:\test\debug文件夾。

你可以先將當(dāng)前文件放入同層或者直接下,然后輸入如下命令啟動(dòng)web服務(wù):

  1. 先打開`cmd`,進(jìn)入server文件所在目錄,比如是`test`目錄;
  2. 然后輸入:`node server debug`(同層), 或者`node server`(子層),
  3. 此時(shí)會(huì)提示`server running at http://127.0.0.5:8085/`, 表示啟動(dòng)服務(wù)成功;
  4. 最后打開瀏覽器,進(jìn)入:`127.0.0.5:8085`,即可訪問此資源。

最后

簡(jiǎn)單解釋下上面的代碼。

首先最上面的require表示需要用到那幾個(gè)模塊,先引用一下;

arg表示輸入的命令行的第三個(gè)參數(shù),上面是做了手動(dòng)截?。?br />

createServer方法表示創(chuàng)建一個(gè)http服務(wù),以函數(shù)為參數(shù),本文代碼中傳入了一個(gè)匿名函數(shù);

  1. req,表示http request(請(qǐng)求)對(duì)象,其攜帶著來自客戶端此次http請(qǐng)求的相關(guān)信息,例如請(qǐng)求method、請(qǐng)求query參數(shù)、請(qǐng)求header頭信息等;
  2. res,表示http response(返回)對(duì)象,用來給客戶端返回請(qǐng)求資源用,可以手動(dòng)添加信息,例如返回的數(shù)據(jù)、返回的頭信息等、返回的code等;
  3. fs,表示文件資源對(duì)象,具體可以訪問nodejs官網(wǎng)的api;
  4. path,表示資源路徑對(duì)象,具體可以訪問nodejs官網(wǎng)的api。

listen表示創(chuàng)建的服務(wù)監(jiān)聽,一旦訪問了此端口,將進(jìn)入此前的匿名函數(shù)回調(diào)中,將資源返回給客戶端。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • vscode 調(diào)試 node.js的方法步驟

    vscode 調(diào)試 node.js的方法步驟

    這篇文章主要介紹了vscode 調(diào)試 node.js的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Node.js利用debug模塊打印出調(diào)試日志的方法

    Node.js利用debug模塊打印出調(diào)試日志的方法

    debug日志打印模塊主要實(shí)現(xiàn)功能是帶命名空間(模塊名)、時(shí)間戳、色彩輸出日志;將日志寫入文件;瀏覽器端使用;格式化函數(shù);支持自定義方法。下面這篇文章主要介紹了Node.js利用debug模塊打印出調(diào)試日志的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-04-04
  • 如何優(yōu)雅地在Node應(yīng)用中進(jìn)行錯(cuò)誤異常處理

    如何優(yōu)雅地在Node應(yīng)用中進(jìn)行錯(cuò)誤異常處理

    這篇文章主要介紹了如何優(yōu)雅地在Node應(yīng)用中進(jìn)行錯(cuò)誤處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • ndm:NPM的桌面GUI應(yīng)用程序

    ndm:NPM的桌面GUI應(yīng)用程序

    今天小編就為大家分享一篇關(guān)于ndm:NPM的桌面GUI應(yīng)用程序,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • nodejs實(shí)現(xiàn)的http、https 請(qǐng)求封裝操作示例

    nodejs實(shí)現(xiàn)的http、https 請(qǐng)求封裝操作示例

    這篇文章主要介紹了nodejs實(shí)現(xiàn)的http、https 請(qǐng)求封裝操作,結(jié)合實(shí)例形式分析了node.js針對(duì)http、https 請(qǐng)求的封裝與使用相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • Node.js中的模塊機(jī)制學(xué)習(xí)筆記

    Node.js中的模塊機(jī)制學(xué)習(xí)筆記

    這篇文章主要介紹了Node.js中的模塊機(jī)制學(xué)習(xí)筆記,本文講解了CommonJS模塊規(guī)范、Node模塊實(shí)現(xiàn)過程、模塊調(diào)用棧、包與NPM等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • nodejs中Express與Koa2對(duì)比分析

    nodejs中Express與Koa2對(duì)比分析

    提到Node.js開發(fā),不得不提目前炙手可熱的2大框架express和koa。Express誕生已有時(shí)日,是一個(gè)簡(jiǎn)潔而靈活的web開發(fā)框架,使用簡(jiǎn)單而功能強(qiáng)大。Koa相對(duì)更為年輕,是Express框架原班人馬基于ES6新特性重新開發(fā)的敏捷開發(fā)框架,現(xiàn)在可謂風(fēng)頭正勁,大有趕超Express之勢(shì)。
    2018-02-02
  • koa2 數(shù)據(jù)api中間件設(shè)計(jì)模型的實(shí)現(xiàn)方法

    koa2 數(shù)據(jù)api中間件設(shè)計(jì)模型的實(shí)現(xiàn)方法

    這篇文章主要介紹了koa2 數(shù)據(jù)api中間件設(shè)計(jì)模型的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 如何讓node運(yùn)行es6模塊文件及其原理詳解

    如何讓node運(yùn)行es6模塊文件及其原理詳解

    這篇文章主要介紹了如何讓node運(yùn)行es6模塊文件及其原理詳解,詳細(xì)的介紹了2種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • nodejs實(shí)現(xiàn)的簡(jiǎn)單web服務(wù)器功能示例

    nodejs實(shí)現(xiàn)的簡(jiǎn)單web服務(wù)器功能示例

    這篇文章主要介紹了nodejs實(shí)現(xiàn)的簡(jiǎn)單web服務(wù)器功能,結(jié)合實(shí)例形式分析了nodejs構(gòu)建web服務(wù)器的相關(guān)監(jiān)聽、響應(yīng)、數(shù)據(jù)處理等操作技巧,需要的朋友可以參考下
    2018-03-03

最新評(píng)論