在Node.js中读取HTML
我正在尝试使用nodejs启动index.html页面,但由于某些原因,在我将其推送到Heroku之后,我一直收到一个应用程序错误。知道我的代码有什么问题吗在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
#/!/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!')但它仍然抛出了错误。所以我刚刚创建了一个新的目录/应用程序,它可以正常工作!!!