UNPKG

@srejs/vue

Version:

@srejs/vue是一个轻量级服务端渲染骨架工具,为koa社区的nodejs开发框架提供具有服务端渲染能力的工具包,使得类似umajs类的web开发框架可以更方便实现前后端同构的服务端渲染能力。特点:轻量级,模板式调用页面进行服务端渲染,不限制后端路由。

39 lines (38 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendHTML = sendHTML; var _etag = require("etag"); var _fresh = require("fresh"); function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function sendHTML(ctx, html, _ref) { var generateEtags = _ref.generateEtags; var req = ctx.req, res = ctx.res; function isResSent(res) { return res.finished || res.headersSent; } if (isResSent(res)) return; if (_typeof(html) == 'object') { res.statusCode = 200; res.setHeader('Content-Type', 'text/html; charset=utf-8'); ctx.body = html; } else { var etag = generateEtags ? _etag(html) : undefined; if (_fresh(req.headers, { etag: etag })) { res.statusCode = 304; res.end(); return; } if (etag) { res.setHeader('ETag', etag); } res.statusCode = 200; res.setHeader('Content-Type', 'text/html; charset=utf-8'); res.setHeader('Content-Length', Buffer.byteLength(html)); res.end(req.method === 'HEAD' ? null : html); } }