简体   繁体   English

错误:无法在视图目录中查找视图“错误”

[英]Error: Failed to lookup view "error" in views directory

I have this error in my express.js project:我的 express.js 项目中有这个错误:

Error: Failed to lookup view "error" in views directory

I would like to redirect by a route into an html page.我想通过路由重定向到 html 页面。

I create a form that send to the route inserToDB a name and a surname.我创建了一个向路由inserToDB发送姓名和姓氏的表单。 I would like to redirect in the profile.ejs page but i find always this error.我想在profile.ejs页面中重定向,但我总是发现这个错误。

I don't understand the reason.我不明白原因。 So i'll post my code in the hope that you can help me..所以我会发布我的代码,希望你能帮助我..

app.js应用程序.js

var routes = require('./routes/routes');
var users = require('./routes/users');

var app = express();
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

// view engine setup
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');

app.use('/', routes);
app.use('/users', users);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});


module.exports = app;

route.js路由.js

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res) {
  console.log("index.ejs è caricata!");
  res.render('index.ejs');
});

router.get('/profile', function(req, res) {
    console.log("Ok ci siamo: profile caricata!");
    res.render('profile.ejs');
});

router.get('/insertToDB', function(req, res) {
    console.log(req.query.name + req.query.surname);
    res.redirect("/profile");
});

module.exports = router;

index.ejs索引.ejs

<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
    <script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
Ciao loschi! 
Inserisci i tuoi dati
<div>
    Nome <input type="text" name="name" id="name"></input>
    <br>
    Cognome<input type="text" name="surname" id="surname"></input>
    <br>
    <input type="submit" name="Invia" id="enter"></input>
    <script type="text/javascript" src="js/action.js"></script>
</div>
</body>
</html>

action.js动作.js

$("#enter").on("click", function(){
    var name = $("#name").val();
    var surname = $("#surname").val();
    $.ajax({
      type: "get",
      url: "/insertToDB",
      data:"name=" + name +"&surname="+ surname,
      async:"true"
    });
});

Try to change your engine setup in app.js to:尝试将app.js的引擎设置更改为:

// view engine setup
app.engine('html', require('ejs').renderFile);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');    

Then change your error handler in app.js to:然后将app.js的错误处理程序更改为:

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error.ejs');
});    

And don't forget to create a .ejs file called error.ejs in the views directory.并且不要忘记在视图目录中创建一个名为error.ejs.ejs文件。 This should fix the error.这应该修复错误。

--pls 保存文件夹名称视图到视图

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Node.js:无法在视图目录中查找视图“错误” - Nodejs: Failed to lookup view “error” in views directory 错误:无法在视图目录中查找视图“ / packages” - Error: Failed to lookup view “/packages” in views directory 错误:无法在视图目录中查找视图“列表” - Error: Failed to lookup view “list” in views directory 错误:无法在视图目录中查找视图“布局” - Error: Failed to lookup view "layout" in views directory 无法在视图目录中查找视图“错误” - Failed to lookup view “error” in views directory 错误:无法在视图目录中查找视图“/listings” - Error: Failed to lookup view "/listings" in views directory “错误:无法在视图目录“E:\tozip\views”中查找视图“错误”“ - "Error: Failed to lookup view "error" in views directory "E:\tozip\views" " 错误:无法在视图目录“/app/views”中查找视图“登录” - Error: Failed to lookup view “login” in views directory “/app/views” Express 应用程序:错误:无法在视图目录“视图”中查找视图“索引” - Express app: Error: Failed to lookup view “index” in views directory “views” 错误:无法在视图目录“/app/views”中查找视图“index” - Error: Failed to lookup view "index" in views directory "/app/views"
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM