无法在视图目录中查找视图“index.ejs”

cat*_*use 7 javascript ejs node.js express

我的快速应用程序(app.js 文件)中有以下代码:

const express = require("express");
const app = express();

app.set('view engine', 'ejs');

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

app.listen(8080);
Run Code Online (Sandbox Code Playgroud)

以及以下依赖项:

"ejs": "^2.6.1",
"express": "^4.16.3",
"request": "^2.87.0"
Run Code Online (Sandbox Code Playgroud)

这是我的文件夹结构:

myapp
   app.js
   package.json
   views
      index.ejs
   node_modules
      [all node files]
Run Code Online (Sandbox Code Playgroud)

但是当我运行应用程序时,它显示了这个错误:

Failed to lookup view "index.ejs" in views directory "mylocaldirectory/myapp/views"
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,这里是其他错误消息:

  at Function.render (/mylocaldirectory/myapp/node_modules/express/lib/application.js:580:17)
    at ServerResponse.render (/mylocaldirectory/myapp/node_modules/express/lib/response.js:1008:7)
    at //mylocaldirectory/myapp/app.js:11:9
    at Layer.handle [as handle_request] (/mylocaldirectory/myapp/node_modules/express/lib/router/layer.js:95:5)
    at next (/mylocaldirectory/myapp/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/mylocaldirectory/myapp/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/mylocaldirectory/myapp/node_modules/express/lib/router/layer.js:95:5)
    at /mylocaldirectory/myapp/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/mylocaldirectory/myapp/node_modules/express/lib/router/index.js:335:12)
    at next (/mylocaldirectory/myapp/node_modules/express/lib/router/index.js:275:10)
Run Code Online (Sandbox Code Playgroud)

如果我只是使用res.send("SOME TEXT"),我不会出错,但是当我尝试渲染 ejs 文件时,它没有。有什么问题?

Dav*_*d R 10

在请求任何视图文件之前,您需要设置您的view 目录和您的目录viewengine

因此,您需要在您之前添加以下几行 app.get

app.set('views', './views');
app.set('view engine', 'ejs');
Run Code Online (Sandbox Code Playgroud)

res.render('index.ejs');应该改变为,

res.render('index');
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

  • 我尝试了这个,但它仍然显示:错误:无法在视图目录“./views”中查找视图“索引” (2认同)