在Node.js中读取HTML

在Node.js中读取HTML,html,node.js,Html,Node.js,我正在尝试使用nodejs启动index.html页面,但由于某些原因,在我将其推送到Heroku之后,我一直收到一个应用程序错误。知道我的代码有什么问题吗 #/!/usr/bin/env node var express = require('express'); var app = express.createServer(express.logger()); app.get('/', function(request, response) { var fs = re

我正在尝试使用nodejs启动index.html页面,但由于某些原因,在我将其推送到Heroku之后,我一直收到一个应用程序错误。知道我的代码有什么问题吗

 #/!/usr/bin/env node

 var express = require('express');

 var app = express.createServer(express.logger());

 app.get('/', function(request, response) {
     var fs = require('fs');
     var buffer = new Buffer();
     response.send(buffer.toString('utc-8', fs.readFileSync("index.html")));
 });

 var port = process.env.PORT || 5000;
 app.listen(port, function() {
 console.log("Listening on " + port);
 });
使用时不指定任何
选项
,返回值将已经是一个
缓冲区
,因此您不必创建另一个缓冲区

Buffer.isBuffer(fs.readFileSync('index.html'));            // true
typeof fs.readFileSync('index.html', 'utf8') === 'string'; // true
并且,可以处理给定的
缓冲区
。无论如何,它实际上会将
字符串
转换回
缓冲区

var fs = require('fs');
response.send(fs.readFileSync('index.html'));

您可能还需要设置
内容类型
,以便浏览器知道它是HTML:

var fs = require('fs');
response.setHeader('Content-Type', 'text/html');
response.send(fs.readFileSync('index.html'));
或者,您也可以使用Express',它将为您管理这两个部分:

app.get('/', function (request, response) {
    response.sendfile('index.html');
});

但是,如果收到的错误提到了
enoint
,则可能需要附加路径

fs
路径将相对于,这可能不是您所期望的

response.sendfile(__dirname + '/index.html');
使用时不指定任何
选项
,返回值将已经是一个
缓冲区
,因此您不必创建另一个缓冲区

Buffer.isBuffer(fs.readFileSync('index.html'));            // true
typeof fs.readFileSync('index.html', 'utf8') === 'string'; // true
并且,可以处理给定的
缓冲区
。无论如何,它实际上会将
字符串
转换回
缓冲区

var fs = require('fs');
response.send(fs.readFileSync('index.html'));

您可能还需要设置
内容类型
,以便浏览器知道它是HTML:

var fs = require('fs');
response.setHeader('Content-Type', 'text/html');
response.send(fs.readFileSync('index.html'));
或者,您也可以使用Express',它将为您管理这两个部分:

app.get('/', function (request, response) {
    response.sendfile('index.html');
});

但是,如果收到的错误提到了
enoint
,则可能需要附加路径

fs
路径将相对于,这可能不是您所期望的

response.sendfile(__dirname + '/index.html');

<代码>缓冲区.toStand('UTC-8), -Type,应该是代码> UTF-8/COD>。但是无论如何要考虑乔纳森的答案。

< P>代码> Buffer-ToSoin。(UTC-8), -Type,应该是代码> UTF-8/COD>。但是无论如何都要考虑乔纳森的答案。

这是很棒的信息,非常有帮助!我没能弄清楚到底出了什么问题。我试过你提到的每一件事,然后继续犯错误。然后我试着回去做响应。('Hello World!')但它仍然抛出错误。因此我刚刚创建了一个新的目录/应用程序,它可以正常工作!!!这是一个非常好的信息,非常有用!我无法准确地找出错误所在-我多次尝试了您提到的所有内容,但它仍然抛出错误。然后我尝试返回到只执行response.send('Hello World!')但它仍然抛出了错误。所以我刚刚创建了一个新的目录/应用程序,它可以正常工作!!!