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

Node.js 尝试呈现静态HTML页面时出现TypeError,node.js,express,Node.js,Express,当对根目录(/)发出GET请求时,我试图呈现一个静态HTML页面 但是,我在访问根目录时收到以下错误(http://localhost:3000/): 项目结构 index.js node_modules public |-- html | |--index.html index.js var express = require('express'); var app = express(); var port = 3000; app.use(express.static(__dirna

当对根目录(
/
)发出GET请求时,我试图呈现一个静态HTML页面

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

项目结构

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
。但是,调用
app.render()
失败。我怀疑它与我要传递到的
app.render()

目录有关,请删除此项

app.get('/', function(req, res) {
    app.render(__dirname + '/html/index.html');
});
请再次尝试使用它。

只需删除此项即可

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

  • 你不应该使用
    app.render
    ,它应该是
    res.render
  • res.render
    应该使用模板引擎来呈现内容,例如,mustache、ejs、jade等。您不应该使用它来呈现纯html文件
  • 如果要发送*.html内容,请尝试使用
    res.sendFile

  • 你不应该使用
    app.render
    ,它应该是
    res.render
  • res.render
    应该使用模板引擎来呈现内容,例如,mustache、ejs、jade等。您不应该使用它来呈现纯html文件
  • 如果要发送*.html内容,请尝试使用
    res.sendFile

  • res而不是函数中的应用程序


    res而不是函数中的app

    使用
    res.sendFile
    而不是
    app.render
    。我认为
    express
    是直接呈现
    html
    文件。使用
    res.sendFile
    而不是
    app.render
    。我认为
    express
    是直接呈现
    html
    文件。
    app.get('/', function(req, res) {
        res.sendFile(__dirname + '/html/index.html');
    });
    
    app.get('/', function(req, res) {
        res.render(__dirname + '/html/index.html');
    })