有时候我们开发过程中,需要一个接口调试,但是又不想很麻烦的要一个后台,就想很快的简单的有一个接口。今天分享使用node的express很简单的起一个服务。当然,express不会扩展,因为本人也不会。
新建一个目录,然后npm init -y,-y是少了询问的步骤;
Npm init express -D 下载express模块;
新建一个server.js;
接下来就是书写代码了:
代码语言:javascript复制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就可以了。
这边需要讲解几个跨域的问题。
一般我们允许跨域是这样设置的:
代码语言:javascript复制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就不能设为星号,必须指定明确的、与请求网页一致的域名。类似这样:
代码语言:javascript复制res.header('Access-Control-Allow-Credentials', true);
res.header('Access-Control-Allow-Origin', 'http://test.test.com:8080');
协议、域名、端口都需要。
(完)