在服务器端,将以下代码添加到app.js中:
const ejs = require('ejs');
const fs = require('fs');
app.engine('ejs', (path, data, callback) => {
fs.readFile(path, 'utf8', (err, template) => {
if (err) return callback(err);
const rendered = ejs.render(template, data);
return callback(null, rendered);
});
});
app.set('view engine', 'ejs');
将以下代码添加到你的客户端JavaScript文件中:
axios({
method: 'get',
url: '/api/get-template',
responseType: 'text',
}).then((response) => {
const templateText = response.data;
const renderedTemplate = ejs.render(templateText);
document.getElementById('templateContainer').innerHTML = renderedTemplate;
}).catch((error) => {
console.error(error);
});
在服务器端,需要设置路由,以便在请求时获取EJS模板:
app.get('/api/get-template', (req, res) => {
const templatePath = path.join(__dirname, './views/my-template.ejs');
fs.readFile(templatePath, 'utf8', (err, data) => {
if (err) {
console.error(err);
res.status(500).send('Error reading template file');
} else {
res.send(data);
}
});
});
这将使Axios能够正确获取EJS文件并渲染它们。