const http = require('http'); const url = require('url'); const path = require('path'); const fs = require('fs'); /** 1. 拼靜態文件路徑 2. 根據具體的mimeType返回相應數據 3. 靜態服務器,無非就是html,css,js,png等。 **/ http.createServer((req, res) => { let pathname = url.parse(req.url).pathname; // 文件夾路徑特殊處理 if (pathname.indexOf('.') == -1) { pathname += './index.html'; } // 把url路徑變成 ./static路徑 let realUrl = './' + path.normalize('./static/' + pathname); const extname = path.extname(pathname); // 讀文件 fs.readFile(realUrl, (err, data) => { // 取mimetype getMimeType(extname, mime => { res.writeHead(200, { 'content-type': mime + ';charset=utf-8' }); res.end(data); }); }); }).listen(3000); function getMimeType(extname, callback) { // 取mime.json文件,key是extname,value是mimeType fs.readFile('./mime.json', (err, data) => { const mimes = JSON.parse(data); callback(mimes[extname]); }); }
基於dva建立簡單react項目(https://github.com/dvajs/dva/...)css
npm i dva-cli -g dva new user-dashboard cd user-dashboard npm run build
把編譯好的dist文件夾下的東西所有拷貝到以前node項目的static文件夾下,從新訪問http://localhost:3000,完成了。html