mock-service-plugin
Version:
42 lines (38 loc) • 1.36 kB
JavaScript
;
var Mock = require('mockjs');
var baseHandler = require('./base-handler.js');
class TextResponseHandler extends baseHandler.BaseResponseHandler {
async handle(req, res, route) {
try {
const contentType = this.getContentType(route);
this.setHeaders(res, contentType);
// 如果模板是字符串,直接使用
if (typeof route.responseTemplate === "string") {
res.send(route.responseTemplate);
return;
}
// 如果是对象,使用 mockjs 处理
const mockData = Mock.mock(route.responseTemplate);
res.send(mockData);
return;
}
catch (error) {
this.handleError(res, error instanceof Error ? error : new Error(String(error)));
}
}
getContentType(route) {
const extension = route.filepath
? route.filepath.split(".").pop()?.toLowerCase() || ""
: "";
const contentTypeMap = {
txt: "text/plain",
html: "text/html",
md: "text/markdown",
css: "text/css",
js: "application/javascript",
};
return contentTypeMap[extension] || "text/plain";
}
}
exports.TextResponseHandler = TextResponseHandler;
//# sourceMappingURL=text-handler.js.map