INNER CODE UNIT · JavaScript
handle
wangshengithub/staticshield · src/server.js:97
return async function handle(req, res) {
try {
var url = (req.url || '/').split('?')[0];
if (ctx && ctx.port) {
var host = String(req.headers.host || ''), p = ctx.port;
if (host !== '127.0.0.1:' + p && host !== 'localhost:' + p && host !== '[::1]:' + p) return sendJson(res, 403, { ok: false, error: 'Forbidden' });
}
if (req.method === 'GET' && (url === '/' || url === '/index.html')) {
if (!guiHtml) return sendJson(res, 503, { ok: false, error: 'GUI 未生成,请先运行 node src/build-gui.js' });
return sendHtml(res, 200, guiHtml);
}
if (req.method === 'GET' && url === '/api/health') return sendJson(res, 200, { ok: true });
if (req.method === 'POST' && url === '/api/encrypt') {
var ct = String(req.headers['content-type'] || '');
if (ct.indexOf('application/json') < 0) return sendJson(res, 415, { ok: false, error: '需使用 application/json' });
var body = await readJson(req, MAX_BODY);
var result = await doEncrypt(body);
return sendJson(res, 200, result);