我希望以下控制器返回一个html字符串作为它的响应。目前我正在对控制器中的字符串进行硬编码,我觉得这不是正确的方法。
router.get('/', function(req, res) {
var employeeDetails; // JSON File Containing Details
// I need ejs to build the page using employeeDetails and store that as a
// string and return this string as the response
});
答案 0 :(得分:2)
如果您将模板作为字符串,则可以致电ejs.render(template)
。
您必须先将模板文件作为字符串读取,因此最终会做到这样的事情:
import * as ejs from 'ejs';
import { readFile as _readFile } from 'fs';
import { promisify } from 'util';
const readFile = promisify(_readFile);
router.get('/', async function(req, res) {
const template = await readFile(/* your template */, 'utf-8');
const employeeDetails = await readFile(/* your json file */, 'utf-8');
const html = ejs.render(template, { /* your data */ });
// now you have your rendered html as a string
// and can e.g.:
res.send(html);
});
答案 1 :(得分:0)
我理解你的问题,可能是一个解决方案。 你可以渲染页面并将json作为对象发送,并在前端使用ejs ...
渲染它们gca
试试这个吗?