nodejs 構建本地web測試伺服器 以及 解決訪問靜態資源的問題!有完整源碼!
直接打開html文件,是以file:///方式打開的,這種方式很多時候會遇到跨域的問題,因此我們一般會搭建一個簡易的本地伺服器,來運行測試頁面。
一、構建靜態伺服器
1、使用express模塊
建立個js文件,命名server,內容代碼如下:
1 var express = require("express");
2 var app = express;
3 var path = require("path");
4
5 //指定靜態資源訪問目錄
6 app.use(express.static(require("path").join(__dirname, "public")));
7 // app.use(express.static(require("path").join(__dirname, "views"))); 如果有文件夾存放資源,出現報錯的話,那就多use幾次就可以了
8 // 設定views變數,意為視圖存放的目錄
9 app.set("views", (__dirname + "/public"));
10 // app.set("views", __dirname);
11 // 修改模板文件的後綴名為html
12 app.set( "view engine", "html" );
13 // 運行ejs模塊
14 app.engine( ".html", require( "ejs" ).__express );
15
16 app.get("/", function(req, res) {
17 res.render("index");
18 });
19
20 var server = app.listen(1336, "127.0.0.1",function{
21 var host = server.address.address;
22 var port = server.address.port;
23 console.log("Server running at http://%s:%s", host, port)
24 });
文件結構如下:
運行的話只要執行:node server.js
就可以了
然後在瀏覽器輸入 http://127.0.0.1:1336/
來訪問項目文件夾內的文件了
2、使用connect模塊
建立個js文件,命名 server2 ,內容代碼如下:
var connect = require("connect");
var serveStatic = require("serve-static");
var app = connect;
// app.use(serveStatic("C:\xxx\xxx\xxx\項目文件夾"));
app.use(serveStatic("public"));
app.listen(1337);
console.log("Server running at http://127.0.0.1:1337/");
運行的話只要執行:node server2.js
就可以了,
然後在瀏覽器輸入 http://127.0.0.1:1337/
來訪問項目文件夾內的文件了。(如果是index.html文件可以省略不寫,默認載入的就是這個文件);
3、使用http模塊
建立個js文件,命名 server3 ,內容代碼如下:
1 var finalhandler = require("finalhandler")
2 var http = require("http")
3 var serveStatic = require("serve-static")
4
5 // Serve up public/ftp folder
6 var serve = serveStatic("public", {"index": ["index.html", "index.htm"]})
7
8 // Create server
9 var server = http.createServer(function onRequest (req, res) {
10 serve(req, res, finalhandler(req, res))
11 })
12
13 // Listen
14 server.listen(1338);
15 console.log("Server running at http://127.0.0.1:1338/");
運行的話只要執行:node server3.js
就可以了,
然後在瀏覽器輸入 http://127.0.0.1:1338/
來訪問項目文件夾內的文件了。
註:總的文件目錄如下:
二、解決訪問靜態資源
主要使用兩個模塊
1.通用的 serve-static 模塊
2.express專屬的 app.use(express.static(require("path").join(__dirname, "public"))); 方法
詳細文檔:http://expressjs.com/en/4x/api.html,然後ctrl+F搜索 express.static ,就能找到對應的說明了。


※HDU 1325,POJ 1308 Is It A Tree
※從 RequireJs 源碼剖析腳本載入原理
※「CF787D」遺產(Legacy)-線段樹-優化Dijkstra
※C身份證識別相關技術
TAG:科技優家 |
※iPhone X再曝問題:不能接電話!看看iPhone X問題匯總
※蘋果ios源代碼泄漏,7%的iPhone用戶有安全問題,系統升級可解決
※開源的問題跟蹤系統WebIssues
※性能測試loadrunner使用共性問題匯總
※性能測試loadrunner場景問題之HTTP
※AlfredoChen:如何看待用經濟、市場原理來解決優質內容的發現問題 一
※移動端兼容問題:解決ios瀏覽器history.back頁面不刷新
※AlfredoChen:如何看待用經濟、市場原理來解決優質內容的發現問題 二
※用深度學習解決Bongard問題
※原來舞蹈真的有balance的問題
※Belle&Sebastian:如何解決人類的問題?
※有關webscraper的問題,看這個就夠了
※iPhone X 新問題: 不能接電話!
※解決畫面撕裂問題:Microsoft微軟XboxOne S/X即將支持防撕裂技術
※對話Ifoods chain創始人卡隆:我們用區塊鏈技術解決食品安全問題的最後一公里
※Cimatron編程注意的問題術語
※厲害了!百位作者藉助Google Docs合作撰文討論P值問題
※Jumia官方回應回款問題:自查payoneer綁定問題,妥投時間很關鍵
※蘋果推iPhone7「無服務」問題維修計劃
※8大關鍵問題 讓你全面了解Social Lending 蜂巢星球