尝试呈现静态HTML页面时出现TypeError

时间:2016-11-24 05:59:30

标签: node.js express

我正在尝试在向根目录(/)发出GET请求时呈现静态HTML页面。

但是,访问根目录(http://localhost:3000/)时收到以下错误:

TypeError: Cannot read property '_locals' of undefined

项目结构

index.js
node_modules
public
|-- html
|   |--index.html

index.js

var express = require('express');
var app = express();
var port = 3000;

app.use(express.static(__dirname + '/public'));

app.listen(port);
console.log('Server running on port ' + port + '.');

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

我可以转到http://localhost:3000/html/index.html来访问我的静态HTML页面。但是,对app.render()的调用失败。我怀疑这与我传递给app.render()的目录有关。

3 个答案:

答案 0 :(得分:2)

  1. 你不应该使用app.render,它应该是res.render
  2. res.render应该使用模板引擎呈现内容,例如,小胡子,ejs,jade等。你不应该使用它来呈现纯html文件。
  3. 如果您要发送* .html内容,请尝试使用res.sendFile
  4. app.get('/', function(req, res) {
        res.sendFile(__dirname + '/html/index.html');
    });
    

答案 1 :(得分:0)

只需删除此

即可
app.get('/', function(req, res) {
    app.render(__dirname + '/html/index.html');
});

再次尝试使用它。

答案 2 :(得分:0)

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

res 而不是功能中的应用