express和cors跨域

使用express框架:javascript

Expressjava

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

相關文章
相關標籤/搜索