使用express框架:javascript
Express:java
Express 是一個保持最小規模的靈活的 Node.js Web 應用程序開發框架,爲 Web 和移動應用程序提供一組強大的功能。node
Express 框架核心特性:
能夠設置中間件來響應 HTTP 請求。express
定義了路由表用於執行不一樣的 HTTP 請求動做。npm
能夠經過向模板傳遞參數來動態渲染 HTML 頁面。json
首先要安裝nodeJs環境跨域
安裝 npm install express --save-devcookie
以上命令會將 Express 框架安裝在當前目錄的 node_modules 目錄中, node_modules 目錄下會自動建立 express 目錄。如下幾個重要的模塊是須要與 express 框架一塊兒安裝的:app
body-parser - node.js 中間件,用於處理 JSON, Raw, Text 和 URL 編碼的數據。框架
cookie-parser - 這就是一個解析Cookie的工具。經過req.cookies能夠取到傳過來的cookie,並把它們轉成對象。
multer - node.js 中間件,用於處理 enctype="multipart/form-data"(設置表單的MIME編碼)的表單數據。
cnpm install body-parser --save
cnpm install cookie-parser --save
cnpm install multer --save
查看express的版本號:cnpm list express
引入express
const express = require('express')
const app = express()
let bodyParser = require("body-parser");
express-generator
express-generator能夠快速的幫咱們搭建項目
全局安裝 cnpm install express-generator -g
局部安裝express cnpm install express --save-dev
建立項目:
npm init -y
express -e
npm install
Hello World
server.js
var express = require("express");
var app = express();
app.get("/",(req,res)=>{
res.send("hello World");
}) ;
app.listener(8081,()=>{});
運行 node server.js
訪問 http://localhost:8081/
express 應用使用回調函數的參數: request 和 response 對象來處理請求和響應的數據。
Request 對象 - request 對象表示 HTTP 請求,包含了請求查詢字符串,參數,內容,HTTP 頭部等屬性。常見屬性有:
req.app:當callback爲外部文件時,用req.app訪問express的實例
req.baseUrl:獲取路由當前安裝的URL路徑
req.body / req.cookies:得到「請求主體」/ Cookies
req.fresh / req.stale:判斷請求是否還「新鮮」
req.hostname / req.ip:獲取主機名和IP地址
req.originalUrl:獲取原始請求URL
req.params:獲取路由的parameters
req.path:獲取請求路徑
req.protocol:獲取協議類型
req.query:獲取URL的查詢參數串
req.route:獲取當前匹配的路由
req.subdomains:獲取子域名
req.accepts():檢查可接受的請求的文檔類型
req.acceptsCharsets / req.acceptsEncodings / req.acceptsLanguages:返回指定字符集的第一個可接受字符編碼
req.get():獲取指定的HTTP請求頭
req.is():判斷請求頭Content-Type的MIME類型
nodemon
nodemon用來監視node.js應用程序中的任何更改並自動重啓服務,很是適合用在開發環境中。
nodemon將監視啓動目錄中的文件,若是有任何文件更改,nodemon將自動從新啓動node應用程序。
全局安裝
npm install -g nodemon
本地安裝
npm install --save-dev nodemon
啓動應用
nodemon [your node app]
Cors:
cnpm install express body-parser --save-dev
server.js
//JavaScript Document let express = require("express"); let app = express(); app.listen(3000, () => console.log("Http server is running at http://127.0.0.1:3000/")); app.use(express.static(__dirname)); let bodyParser = require("body-parser"); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); app.use(bodyParser.raw()); app.use(bodyParser.text()); //須要跨域的url let allowOrigin = [ "http://127.0.0.1:8080/", "http://127.0.0.1:3000/" ]; app.use((request, response, next) => { let {origin} = request.headers; if(allowOrigin.includes(origin)) { response.setHeader("Access-Control-Allow-Origin", origin); response.setHeader("Access-Control-Allow-Credentials", true); response.setHeader("Access-Control-Allow-Headers", "Content-Type, Content-Length, Authorization, Accept, X-Requested-With"); response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, HEAD, DELETE, OPTIONS"); response.setHeader("X-Powered-By", "3.2.1"); if(request.method.toUpperCase() == "OPTIONS") { response.statusCode = 204; response.end(); } } next(); }); app.use("/", require("./router")); app.all("*", (request, response) => { response.sendStatus(404); });
router/index.js
let express = require("express");
let router = express.Router();
router.use("/index", require("./router"));
module.exports = router;
router/router/index.js
let express = require("express"); let router = express.Router(); router.post("/login",(req,res)=>{ res.send("你好"); }); module.exports = router;
在package的scripts裏添加:"serve":"node server.js"
運行:npm run serve