Express簡單起一個本地服務介面

wade3po發表於2019-03-04

有時候我們開發過程中,需要一個介面除錯,但是又不想很麻煩的要一個後臺,就想很快的簡單的有一個介面。今天分享使用node的express很簡單的起一個服務。當然,express不會擴充套件,因為本人也不會。

新建一個目錄,然後npm init -y,-y是少了詢問的步驟;

Npm init express -D 下載express模組;

新建一個server.js;

接下來就是書寫程式碼了:

let express = require('express');

let app =express();

 

//設定跨域訪問

app.all('*', function (req, res, next) {

  res.header('Access-Control-Allow-Origin', 'http://test.test.com:8080');

  res.header('Access-Control-Allow-Credentials', true);

  res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length, Authorization, Accept,X-Requested-With')

  res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS');

  res.header('Content-Type', 'application/json;charset=utf-8');

  next()

});

 

let data = {

    name: 'wade',

    age: 18,

};

 

let api = '/api/user';

 

app.get(api, (req, res) => {

    res.send(data);

});

 

//配置服務埠

var server = app.listen(8000, () => {

    console.log( `localhost:8000${api}`);

});

複製程式碼

程式碼很簡單,幾乎都不需要講解,然後直接就node server.js,瀏覽器直接訪問localhost:8000/api/user。使用ajax或者是axios直接請求這個地址。

Post的話直接把get改成post就可以了。

這邊需要講解幾個跨域的問題。

一般我們允許跨域是這樣設定的:

res.header('Access-Control-Allow-Origin', '*');

如果出現報錯跨域:XMLHttpRequest is controlled by the withCredentials attribute.

是因為我們請求的時候設定了允許攜帶cookie,CORS請求預設不傳送Cookie和HTTP認證資訊。如果要把Cookie發到伺服器,要伺服器同意,指定Access-Control-Allow-Credentials欄位,表示是否允許傳送Cookie。

需要注意的是,如果要傳送Cookie,Access-Control-Allow-Origin就不能設為星號,必須指定明確的、與請求網頁一致的域名。類似這樣:

res.header('Access-Control-Allow-Credentials', true);

res.header('Access-Control-Allow-Origin', 'http://test.test.com:8080');

協議、域名、埠都需要。

歡迎關注Coding個人筆記公眾號

相關文章