首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js生成html

Node.js生成html
EN

Stack Overflow用户
提问于 2014-02-07 09:10:14
回答 3查看 137.4K关注 0票数 43

我已经创建了一个生成数据列表的JavaScript程序。输出示例如下:

output one 
output two 
output three 
...

我希望能够生成一个HTML文件,可以保存到磁盘和浏览器打开。下面是我想要生成的HTML示例。

<html>
    <head>
    </head>
    <body>
        <table id="history_table">
            <tr>
                <td>header 1</td>
                <td>header 2</td>
                <td>header 3</td>
            </tr>
            <tr>
               <td>output one</td>
            </tr>
            ...
        </table>
    </body>
</html>

我尝试过这样做:

var htmlDoc = document.createElement("HMTL");
htmlDoc.innerhtml('<head></head><body>...</body>');

但这显然是错误的,因为document对象并不存在。

我认为这个问题是有道理的,特别是从它获得的票数来看。它能重新打开吗?

EN

回答 3

Stack Overflow用户

发布于 2014-02-07 10:48:04

尽管@yanick-rochon的答案是正确的,但实现目标的最简单方法(如果是提供动态生成的html)是:

var http = require('http');
http.createServer(function (req, res) {
  res.write('<html><head></head><body>');
  res.write('<p>Write your HTML content here</p>');
  res.end('</body></html>');
}).listen(1337);

这样,当你在http://localhost:1337上浏览时,你会得到你的html页面。

票数 16
EN

Stack Overflow用户

发布于 2014-02-07 11:08:20

如果你想创建静态文件,你可以使用Node.js File System库来实现。但是,如果您正在寻找一种方法来创建动态文件作为数据库或类似查询的结果,那么您将需要一个像SWIG这样的模板引擎。除了这些选项之外,您还可以像往常一样创建HTML文件,并通过Node.js提供这些文件。为此,您可以使用Node.js File System从HTML文件中读取数据并将其写入response。一个简单的例子是:

var http = require('http');
var fs   = require('fs');

http.createServer(function (req, res) {
  fs.readFile(req.params.filepath, function (err, content) {
    if(!err) {
      res.end(content);
    } else {
      res.end('404');
    }
  }
}).listen(3000);

但我建议您研究一些框架,如Express,以获得更有用的解决方案。

票数 5
EN

Stack Overflow用户

发布于 2020-12-30 10:38:58

您可以使用jsdom

const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const { document } = (new JSDOM(`...`)).window;

或者,看看cheerio,它可能更适合您的情况。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21617468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档