有時候我們開發過程中,需要一個介面除錯,但是又不想很麻煩的要一個後臺,就想很快的簡單的有一個介面。今天分享使用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個人筆記公眾號