tframe-utility
Version:
minimal unit of smpoo tframe platform
46 lines (42 loc) • 1.14 kB
JavaScript
/* 路由预处理器
*/
module.exports = (req, res, next) => {
// 定义标准输出
res.apiOk = data => {
res.json({
apiStatus: 'ok',
result: data
});
};
res.apiErr = err => {
console.log(err);
res.status(err.status || 500);
res.json({
apiStatus: 'err',
code: err.status || '500',
reason: err.reason || err.toString()
});
};
if (req.url === '/favicon.ico') {
res.apiOk('icon请求,已被忽略!');
} else {
// 注入请求端IP
req.userIp =
req.headers['x-forwarded-for'] ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
req.connection.socket.remoteAddress;
// TO DO
待后续补充是否要对get请求参数格式化;
let irg1 = /sign\/in/;
let irg2 = /sign\/up/;
// 忽略 sign-in sign-up请求的session验证
if (!irg1.test(req.url) && !irg2.test(req.url) && !req.session.userid) {
let err = new Error();
err.status = 401;
err.reason = '当前未登录,或登录已过期';
res.apiErr(err);
}
}
next();
};