代码拉取完成,页面将自动刷新
同步操作将从 teambp/ScaffoldClient 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import { readFileSync } from 'fs';
import { join } from 'path';
import { request, getOptions, postOptions } from './utils/request';
/**
* 对象的深度克隆
* @param {*object} obj
*/
const clone = (obj) => {
// Handle the 3 simple types, and null or undefined
if (null == obj || "object" != typeof obj) return obj;
// Handle Date
if (obj instanceof Date) {
const copy = new Date();
copy.setTime(obj.getTime());
return copy;
}
// Handle Array
if (obj instanceof Array) {
const copy = [];
for (let i = 0; i < obj.length; i++) {
copy[i] = clone(obj[i]);
}
return copy;
}
// Handle Object
if (obj instanceof Object) {
var copy = {};
for (var attr in obj) {
if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);
}
return copy;
}
throw new Error("Unable to copy obj! Its type isn't supported.");
}
export default function (req, res, next) {
switch (req.url) {
case '/api/account/login':
doapi(req.url, postOptions(req), (data) => {
// 克隆对象用于返回调用方
var copy = clone(data);
if (data.success) {
var user = data.data;
user.menus = null; //将菜单信息清除然后保存到session
req.session.user = user;
}
res.send(copy);
});
break;
case '/api/account/logout':
if (req.session.user) {
req.body.guid = req.session.user.guid;
doapi(req.url, postOptions(req), (data) => {
if (data.success) {
req.session.user = undefined;
}
res.send(data);
});
} else {
res.send({ message: '注销成功.', success: true });
}
break;
case '/api/user/getloginuser':
if (req.session.user) {
res.send({ success: true, message: '获取成功!', data: req.session.user });
} else {
res.send({ message: '未登录!', success: false });
}
break;
case '/api/article/savearticle':
if (req.session.user) {
req.body.UserGuid = req.session.user.userGuid;
doapi(req.url, postOptions(req), (data) => {
res.send(data);
});
} else {
res.send({ message: '未登录!', code: -1, success: false });
}
break;
default:
const user = req.session.user;
// 如果身份过期则跳转至登录页
if (user === undefined && req.url.indexOf('/login') === -1) {
res.redirect(`/login?from=${req.url}`);
} else {
if (req.url.indexOf('/api') > -1) {
if (req.url.indexOf('/login') > -1) {
res.send({
statusCode: 401,
message: '身份过期,请重新登录.',
success: false,
data: req.url
});
return;
}
if (req.method == "POST") {
doapi(req.url, postOptions(req), (data) => {
res.send(data);
});
}
if (req.method == "GET") {
doapi(req.url, getOptions(req), (data) => {
res.send(data);
});
}
} else {
next();
}
}
break;
}
}
function doapi(url, options, callback) {
request(url, options)
.then(data => {
callback(data);
});
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。