Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将javascript导入html内联脚本以供单个文件使用_Javascript_Node.js_Express - Fatal编程技术网

将javascript导入html内联脚本以供单个文件使用

将javascript导入html内联脚本以供单个文件使用,javascript,node.js,express,Javascript,Node.js,Express,我在NodeExpress服务器上工作,该服务器为存储在数据库(MongoDB)中的数据生成报告(表、图表)。让它变得困难的是,报告应该可以作为单个文件下载,并且可以脱机查看。这意味着所有数据和javascript都应该在html文件中 通过搜索stackoverflow,我发现了这个问题-。其中一个解决方案是命令行工具,它访问页面并将所有资产捆绑在一起,其他解决方案使用其他语言。在我的例子中,访问页面并下载文件是没有意义的,因为它们已经在内存中,应该从节点服务器导入 这是我到目前为止一直在做的

我在NodeExpress服务器上工作,该服务器为存储在数据库(MongoDB)中的数据生成报告(表、图表)。让它变得困难的是,报告应该可以作为单个文件下载,并且可以脱机查看。这意味着所有数据和javascript都应该在html文件中

通过搜索stackoverflow,我发现了这个问题-。其中一个解决方案是命令行工具,它访问页面并将所有资产捆绑在一起,其他解决方案使用其他语言。在我的例子中,访问页面并下载文件是没有意义的,因为它们已经在内存中,应该从节点服务器导入

这是我到目前为止一直在做的一个例子

Server.js:

//模板库
常量胡子=需要(“胡子”);
//要作为内联脚本导入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,让我的生活更轻松

所以我的问题是,这种方法可行吗?有没有更好的方法