Javascript 如何在HTML文档的开头插入脚本节点?

Javascript 如何在HTML文档的开头插入脚本节点?,javascript,html,node.js,Javascript,Html,Node.js,我试图使用NodeJS来修改HTML文件,以便在HTML的开头添加一个脚本标记,使其在所有其他脚本之前执行 我当前的代码如下所示: const fs = require('fs'); const parse = require('node-html-parser').parse; fs.readFile('test.html', 'utf8', (err,html)=>{ if(err){ throw err; } const root = parse(h

我试图使用
NodeJS
来修改
HTML
文件,以便在
HTML
的开头添加一个脚本标记,使其在所有其他脚本之前执行

我当前的代码如下所示:

const fs = require('fs');
const parse = require('node-html-parser').parse;

fs.readFile('test.html', 'utf8', (err,html)=>{
   if(err){
      throw err;
   }

   const root = parse(html);

   const head = root.querySelector('head');
   if (head !== null) {
      head.insertBefore( '<script src = "test.js"></script>', head.firstChild);
      fs.writeFile('test.html', root.toString(), function (err) {
           if (err) return console.log(err);
      });
   }
 });
const fs=require('fs');
const parse=require('node-html-parser')。parse;
fs.readFile('test.html','utf8',(err,html)=>{
如果(错误){
犯错误;
}
constroot=parse(html);
const head=root.querySelector('head');
如果(头!==null){
头。插入前(“”,头。第一个孩子);
fs.writeFile('test.html',root.toString(),函数(err){
if(err)返回console.log(err);
});
}
});

但是
insertBefore
正在引发异常。如何更正此问题?

insertBefore
将节点作为其第一个参数;你在传递一个字符串。使用
innerHTML
插入脚本:

head.innerHTML = '<script src = "test.js"></script>' + head.innerHTML;
head.innerHTML=''+head.innerHTML;

insertAdjacentHTML
也可以使用。

未定义
文档。当我使用
root
时,我得到
root.createElement不是一个函数
哦,当然了。您可以改为在
innerHTML
前加前缀。或者您可以使用
parse()
创建
(可能)请发布您收到的错误。在该库的API参考中,我没有看到任何
insertBefore
方法,我也不一定希望它支持所有DOM方法。