使用Node.js将HTML内容插入模板中

Insert HTML content into template with Node.js

本文关键字:插入 Node js HTML 使用      更新时间:2023-09-26

我有一组文件(HTML片段),我与Node.js服务如下:

var finalhandler = require('finalhandler')
var http = require('http')
var serveIndex = require('serve-index')
var serveStatic = require('serve-static')
// Serve directory indexes for all files in the folder
var index = serveIndex('./', {'icons': true})
// Serve up public/ftp folder files
var serve = serveStatic('./')
// Create server
var server = http.createServer(function onRequest(req, res){
  var done = finalhandler(req, res)
  serve(req, res, function onNext(err) {
    console.log(req,res)
    if (err) return done(err)
    index(req, res, done)
  })
})
// Listen
server.listen(3000)

这提供了一个索引,其中包含指向HTML文件的活动链接列表。我需要链接的HTML文件被包含在一个模板(即,把相同的头在每个页面,并在相同的css文件中读取)。当我像文档中描述的那样使用template选项时,提供的唯一内容是模板:

// Serve directory indexes for public/ftp folder (with icons)
var index = serveIndex('./', {'icons': true, template:'template.html'})

如何使用模板或其他配置来提供默认HTML内的HTML片段?

我认为你需要在你的模板中添加一些东西来实际显示这样的文件:

<body class="directory">
  <div id="wrapper">
    <h1><a href="/">~</a>{linked-path}</h1>
    {files}
  </div>
</body>

如果你看一下/public下的server -index安装目录,你会发现默认的模板文件叫做directory.html。您可以剪切和粘贴其中的一些代码来显示您的文件。