将javascript导入html内联脚本以供单个文件使用
我在NodeExpress服务器上工作,该服务器为存储在数据库(MongoDB)中的数据生成报告(表、图表)。让它变得困难的是,报告应该可以作为单个文件下载,并且可以脱机查看。这意味着所有数据和javascript都应该在html文件中 通过搜索stackoverflow,我发现了这个问题-。其中一个解决方案是命令行工具,它访问页面并将所有资产捆绑在一起,其他解决方案使用其他语言。在我的例子中,访问页面并下载文件是没有意义的,因为它们已经在内存中,应该从节点服务器导入 这是我到目前为止一直在做的一个例子 Server.js:将javascript导入html内联脚本以供单个文件使用,javascript,node.js,express,Javascript,Node.js,Express,我在NodeExpress服务器上工作,该服务器为存储在数据库(MongoDB)中的数据生成报告(表、图表)。让它变得困难的是,报告应该可以作为单个文件下载,并且可以脱机查看。这意味着所有数据和javascript都应该在html文件中 通过搜索stackoverflow,我发现了这个问题-。其中一个解决方案是命令行工具,它访问页面并将所有资产捆绑在一起,其他解决方案使用其他语言。在我的例子中,访问页面并下载文件是没有意义的,因为它们已经在内存中,应该从节点服务器导入 这是我到目前为止一直在做的
//模板库
常量胡子=需要(“胡子”);
//要作为内联脚本导入html的Javascript
const someFunction=require(“./src/someFunction.js”).toString();
app.get(“/:id”),异步(req,res)=>{
//从数据库获取数据
const data=wait MongooseSchema.find({id:req.params.id});
//阅读html视图
const view=fs.readFileSync(“./views/report.html”,“utf8”});
//留胡子
const html=mustache.to_html(视图{
数据,
javascript:{someFunction}
});
//发送呈现的html
res.send(html);
});
report.html包含以下脚本标记:
const data={{{data}};
{{{javascript.someFunction}}}
我将javascript文件作为字符串导入,然后使用mustache模板库在html文件中呈现它们。这种方法似乎有点老套,应该有更好的方法
此外,我还考虑实现一些绑定器(webpack/packet/rollup),将所有js文件合并成一个文件,然后将其作为内联脚本手动导入html。
甚至可以使用一些框架,比如react,让我的生活更轻松
所以我的问题是,这种方法可行吗?有没有更好的方法