nodejs 構建本地web測試服務器 以及 解決訪問靜態資源的問題!有完整源碼!

直接打開html文件,是以file:///方式打開的,這種方式不少時候會遇到跨域的問題,所以咱們通常會搭建一個簡易的本地服務器,來運行測試頁面。html

1、構建靜態服務器node

一、使用express模塊git

創建個js文件,命名server,內容代碼以下:github

 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 });

文件結構以下:web

運行的話只要執行:node server.js 就能夠了express

而後在瀏覽器輸入 http://127.0.0.1:1336/ 來訪問項目文件夾內的文件了api

二、使用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文件能夠省略不寫,默認加載的就是這個文件);

三、使用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/ 來訪問項目文件夾內的文件了。

注:總的文件目錄以下:

源碼下載地址:https://github.com/seanpx/nodejs-example/tree/master/web-static-server

2、解決訪問靜態資源

主要使用兩個模塊

1.通用的 serve-static 模塊

詳細文檔:https://github.com/expressjs/serve-static

2.express專屬的  app.use(express.static(require('path').join(__dirname, 'public')));  方法

詳細文檔:http://expressjs.com/en/4x/api.html ,而後ctrl+F搜索 express.static ,就能找到對應的說明了。

相關文章
相關標籤/搜索