admin管理员组

文章数量:1418637

I'm having the most bizarre issue with Express's res.sendFile function. The following is the code in my index.js:

app.get('/', function(req, res){
    var path = __dirname + '/views/index.ejs';
    res.sendFile(path);
});

Nothing plicated, but when navigating to localhost the browser downloads the HTML instead of displaying it.

I'm having the most bizarre issue with Express's res.sendFile function. The following is the code in my index.js:

app.get('/', function(req, res){
    var path = __dirname + '/views/index.ejs';
    res.sendFile(path);
});

Nothing plicated, but when navigating to localhost the browser downloads the HTML instead of displaying it.

Share Improve this question asked Oct 14, 2015 at 7:30 BHouwensBHouwens 3905 silver badges13 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 6

if you want to render just use the express utility function

app.get("/", function(req, res) {
    res.render(__dirname + "/views/index.ejs");
});

I don't know if this is an expressRouter-only thing but I got around this by declaring get functions on an expressRouter, getting the main app to use this router, and then, most importantly, using res.render as opposed to res.sendFile.

var router = express.Router();

router.get('/', function(req, res){
   res.render(__dirname + '/views/index.ejs');
});

本文标签: javascriptExpress ressendFile forces download instead of serving of HTMLStack Overflow