NodeJS替代PHP includes的方法?

6

我来自PHP背景,但我决定在我的最新项目中尝试NodeJS(和可能是Express)。对于HTML页面模板,有哪些替代PHP includes的方案?我通常会这样做:

<?php include('header.php'); ?>

我尝试过谷歌搜索和在Stack Overflow上搜索,但找不到NodeJS的替代品。


1
如果你想要像 PHP 一样的功能,只需要从另一个文件中包含 HTML,你可以这样做:express.get('/', function (req, res) { let header = fs.readFileSync(__dirname + '/header.html'), index = fs.readFileSync(__dirname + '/index.html'); res.send(header + index); }); - Got To Figure
1个回答

3

如果您只想从外部文件中加载导出的对象,则可以使用 require 函数。

var imported = require('your-module');

如果您想直接将外部Javascript文件执行到全局作用域(类似于PHP的include),那么您应该使用eval。请注意,这种方法可能存在一些安全风险,因此请谨慎使用。
eval(require('fs').readFileSync('your-module\\index.js') + '');

我正在寻找一种可以允许“模板化”的HTML页面的方式。这样我就可以更改文档的标题,所有标题都会更改。 - LearnSomeMore
我不确定你想做什么。Node.js没有头文件,它使用模块代替。如果您更改模块,则包含该模块的所有脚本都将更改。 - user6586783
抱歉,也许NodeJs不是做这件事的正确技术。你知道如何在HTML文件中包含其他HTML文件吗?例如,如果我有一个网站头部,在所有HTML页面上都有它。 - LearnSomeMore
@LearnSomeMore。在HTML中实现最好的方法是包含一个脚本,当window.onload事件触发时,它将配置头文件。 - user6586783
顺便说一句 - 在这里提到的 eval 解决方案是一个很好的并行解决方案,可以像 PHP 一样包含函数并清理基础脚本。 - Andrew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接