使用express.js打开HTML文件

时间:2012-12-07 14:44:12

标签: javascript node.js express

var express = require("express");
var fs = require('fs');
var sys = require('sys');

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

app.get('/', function(req, res){
    fs.readFile('/views/index.html');
});

app.listen(8080);
console.log('Express server started');

我不想使用模板引擎玉。如何打开一个位于我的视图文件夹中的简单index.html页面。服务器正在启动,但似乎我无法加载index.html页面。

3 个答案:

答案 0 :(得分:7)

使用express 3.0.0rc3,以下工作:

app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);

或者

app.set("view options", {layout: false});
app.use(express.static(__dirname + '/public'));

所以你的最终代码看起来像这样。

var express = require("express");
var fs = require('fs');
var sys = require('sys');

var app = express();
    app.use(express.logger());
    app.set("view options", {layout: false});
    app.use(express.static(__dirname + '/views'));

app.get('/', function(req, res){
    res.render('/views/index.html');
});

app.listen(8080);
console.log('Express server started');

答案 1 :(得分:1)

您现在可以使用res.sendfile('index.html')而不是使用res.send()

答案 2 :(得分:0)

使用express v4.7.1且不使用模板引擎jade即可。

在最新版本中,sendfile()已更改为sendFile()。

对于文件路径,服务器尝试从根目录中查找文件的路径,因此必须指定整个路径或使用“ _dirname”,否则将始终遇到找不到文件的错误

var express = require("express");
var path = require('path');
var app = express();

app.get('/', function (req, res) {
    res.sendFile(path.join(__dirname + '/views/index.html'))

});

app.listen(8080);
console.log('Express server started');

希望有帮助。快乐编码:)