4
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 页面。

4

4 回答 4

8

使用 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');
于 2012-12-07T15:06:56.447 回答
1

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

于 2019-10-21T19:37:23.143 回答
0
let express=require('express');
let app=express();


app.get( '/', (req,res)=>{
res.sendFile(__ dirname + "/my.txt");

})
app.listen(4000);

尝试这个。它会正常工作。

于 2021-11-17T03:29:06.467 回答
0

使用 express v4.7.1 并且不使用模板引擎翡翠,这工作正常。

在最新版本中,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');

希望能帮助到你。快乐编码:)

于 2020-09-02T05:04:40.087 回答