日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Node.js】编码实现目录浏览服务

發布時間:2024/9/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Node.js】编码实现目录浏览服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  • node.js v12.18.2
  • 用 node.js 實現目錄瀏覽服務 (http-server實現,serve實現)
  • 前提,已經按照好Node.js

編碼實現

  • 創建項目
    找個自己喜歡的位置,創建個目錄,起名為dirService
  • 初始化項目
  • npm init
  • 安裝相關插件
  • npm install connect@3.7.0 http@0.0.1-security st@2.0.0 --save-dev
    • 因為用到了connect.static,所以需要指定版本。
  • 編寫腳本 index.js
  • var connect = require('connect'); var http = require('http'); var st = require('st'); var port = 8000;var mount = st({path: 'static',cache: true}); var app = connect().use(mount); http.createServer(app).listen(port);console.log('server start done.'); console.log('port is ' + port);
  • 啟動腳本 index.js
  • shell> node index.js server start done. port is 8000
  • 查看效果
  • 另一個寫法

    var http = require('http'); var st = require('st'); var port = 8000;var mount = st({path: 'static',cache: true}); http.createServer(function (req, res) {if (mount(req, res)) return; }).listen(port);console.log('server start done.'); console.log('port is ' + port);

    又一種寫法

    var connect = require('connect'); var st = require('st'); var port = 8000;var mount = st({path: 'static',cache: true}); var app = connect().use(mount); app.listen(port);console.log('server start done.'); console.log('port is ' + port);

    用 express 的寫法

    var express = require('express'); var st = require('st'); var port = 8000;var app = express(); var mount = st({path: 'static',cache: true}); app.use('/', mount); app.listen(port);console.log('server start done.'); console.log('port is ' + port);
    • 這個寫法需要安裝 express 組件 : npm install express@4.17.1 --save-dev

    關于錯誤 Cannot GET /

    嘗試獲取靜態資源時,使用了下面的方式:

    • connect 組件的 connect.static(directory) (需要換用 connect 2.x 版本)
    • serve-static 組件的 serveStatic("./")
    • express 組件的 express.static(__dirname + '/public')

    均在訪問時出現錯誤 Cannot GET /。
    目前看 st 組件好用。

    關于版本

    不同的版本會有實現上的變動,比如 connect 組件在 3.0 時去掉了 connect.static()。
    因此,取最新版本的組件不能保證代碼順利執行。
    盡量指定組件的版本。

    關于空目錄

    空目錄打開異常(無響應)。
    非空目錄打開正常。

    參考

    https://stackoverflow.com/questions/9627441/cannot-get-with-connect-on-node-js
    https://stackoverflow.com/questions/16333790/node-js-quick-file-server-static-files-over-http/24575241#24575241?newreg=f45f9198b20d4fc69d86e009ee614
    https://www.npmjs.com/package/st

    總結

    以上是生活随笔為你收集整理的【Node.js】编码实现目录浏览服务的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。