问题描述
我正在研究布局和模板。我有一个网站,其中包含“views/partials/header.ejs”和“views/partial/footer.ejs”文件。我的 app.js 文件模板设置如下:
const express = require('express')
const bodyParser = require('body-parser');
const nodemailer = require('nodemailer');
const ejs = require('ejs');
const date = require(__dirname + '/date.js');
const app = express();
app.set('view engine','ejs');
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static("public"));
app.get('/',function(req,res) {
const year = date.getYear();
res.render('home',{copyrightYear: year})
});
app.listen(3000,function() {
console.log('Server started on port 3000');
});
我需要做的是将 const copyrightYear 传递到部分“页脚”中,而不必输入到每条路线中。欢迎提出任何建议。
提前致谢。
解决方法
您不能这样做,因为当您发出请求时,服务器会获取所需的文件,然后执行其上的逻辑,然后将其发送回浏览器。
所以当你使用这个
app.get('/',function(req,res) {
const year = date.getYear();
res.render('home',{copyrightYear: year})
});
服务器将获取包含部分文件的主文件,然后传递数据,然后将其发送到浏览器。
所以你必须为你想要的每个文件单独请求,然后在它上面做逻辑