前后端分离--前端脱离后台,调试页面
前言
利用nodejs
作为后台服务,使用nginx
解决跨域或者在node
中接受跨域请求,使用mock
做假数据。
安装库
- http-server
- supervisor
- mock
- nginx
过程
-
在前端页面所在文件夹内,调出命令行,输入
http-server
。将本目录作为服务器根目录。默认端口为8080,如果有冲突使用参数
-p
,例如:http-server -p 5000
,此时开启的服务端口为5000 -
编写node服务端代码,处理前端请求。
const express = require('express'); const app = express(); const port = 3000; const bodyParser = require('body-parser'); const Mock = require('mockjs'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); let _data = {} app.post('api/接口地址', (req, res) => { //code 可以根据请求参数编写简单的处理逻辑 //根据自己的系统拼装报文 _data = { "code": "状态码", data: Mock.mock({ 'list|20': [{ "data1": '@float( 0, 9, 2, 2 )', "data2": '@float( 0, 9, 2, 2 )', "data3": 1523808000000, "data4": '@float( -1, 0, 4, 4 )' }], page: 1, size: 10, total: 100, }), message: '提交成功', t: new Date().getTime() }; //返回数据 res.status(200).json(_data); }); app.get(...) app.post(...) app.listen(port, function () { console.log('[Server] localhost:' + port); });
启动node服务器,一般启动使用
node app.js
,但是这里我们用supervisor app.js
启动,因为这样启动一旦服务器文件被改变 他讲自动重启node
服务
-
配置nginx
配置nginx
的80端口代理本机的5000端口,此处的5000为前面http-server
启动时配置的端口号
配置nginx
拦截ajax
的请求地址,代理转发到3000端口,此处的3000为node
服务器的端口号http { server { listen 80; #拦截接口地址 location ^~/api{ proxy_pass http://127.0.0.1:3000/api; } #代理服务器地址 location / { proxy_pass http://127.0.0.1:5000; proxy_intercept_errors on; proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for; } } }
进到nginx安装目录 输入
start nginx
启动nginx
服务
补充
如果不想配置nginx,可以在node
内配置允许跨域请求。
app.all('/dbank/*', (req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By", ' 3.2.1');
res.header("Content-Type", "application/json;charset=utf-8");
next();
});