简体   繁体   English

Express Js EJS 布局错误:未指定默认引擎且未提供扩展名

[英]Express Js EJS Layouts Error: No default engine was specified and no extension was provided

Hi I am trying to use Express EJS Layouts in my app.您好我正在尝试在我的应用程序中使用 Express EJS 布局。 As soon as I try to app.use(expressEjsLayouts) it throws an error.一旦我尝试app.use(expressEjsLayouts)它就会抛出一个错误。 Without it the application works perfectly fine but I'd like to make use of ExpressEjs-Layouts for my templates.没有它,应用程序工作得很好,但我想为我的模板使用 ExpressEjs-Layouts。 Please be kind I am fairly new to coding:) I've looked through many posts already but couldnt find an answer.请善待我对编码相当陌生:)我已经浏览了很多帖子,但找不到答案。 Here is my server.js这是我的 server.js

if (process.env.NODE_ENV !== 'production') {
  require('dotenv').config()
}

const express = require('express')
const app = express()
const passport = require('passport')
const flash = require('express-flash')
const session = require('express-session')
const methodOverride = require('method-override')
const indexRouter = require("./routes/index")

app.use(express.urlencoded({ extended: false }))
app.use(flash())
app.use(session({
  secret: process.env.SESSION_SECRET,
  resave: false,
  saveUninitialized: false
}))

app.use(passport.initialize())
app.use(passport.session())
const initializePassport = require('./passport-config')
const expressEjsLayouts = require('express-ejs-layouts')

initializePassport(
  passport,
  email => indexRouter.users.find(user => user.email === email),
  id => indexRouter.users.find(user => user.id === id)
)    
// Set Template Engine
app.use(expressEjsLayouts) // THIS SEEMS TO BE WHAT MAKES IT CRASH
app.set("layout", "layouts/layout") 
app.set('view-engine', 'ejs')
app.set("views", __dirname + "/views")


// Static Files
app.use(express.static("public"))


app.use("/", indexRouter.router)
app.use(methodOverride('_method'))

app.listen(process.env.PORT || 3000)

This is the error:这是错误:

Error: No default engine was specified and no extension was provided.
    at new View (C:\Users\admin\Documents\Alles mit JS\gefahrengueterproject\node_modules\express\lib\view.js:61:11)
    at Function.render (C:\Users\admin\Documents\Alles mit JS\gefahrengueterproject\node_modules\express\lib\application.js:570:12)
    at ServerResponse.render (C:\Users\admin\Documents\Alles mit JS\gefahrengueterproject\node_modules\express\lib\response.js:1012:7)
    at ServerResponse.res.render [as __render] (C:\Users\admin\Documents\Alles mit JS\gefahrengueterproject\node_modules\express-flash\lib\express-flash.js:29:16)
    at C:\Users\admin\Documents\Alles mit JS\gefahrengueterproject\node_modules\express-ejs-layouts\lib\express-layouts.js:113:20
    at tryHandleCache (C:\Users\admin\Documents\Alles mit JS\gefahrengueterproject\node_modules\ejs\lib\ejs.js:260:5)
    at View.exports.renderFile [as engine] (C:\Users\admin\Documents\Alles mit JS\gefahrengueterproject\node_modules\ejs\lib\ejs.js:485:10)
    at View.render (C:\Users\admin\Documents\Alles mit JS\gefahrengueterproject\node_modules\express\lib\view.js:135:8)
    at tryRender (C:\Users\admin\Documents\Alles mit JS\gefahrengueterproject\node_modules\express\lib\application.js:640:10)
    at Function.render (C:\Users\admin\Documents\Alles mit JS\gefahrengueterproject\node_modules\express\lib\application.js:592:3)

You need to tell express which view engine you're using.您需要告诉 express 您正在使用哪个视图引擎。 You can do it by using the app.set() method.您可以使用app.set()方法来做到这一点。 it takes two parameters 1.what you're setting.它需要两个参数 1.你在设置什么。 in this case a view engine 2.the type of view engine you wish to use在本例中为视图引擎 2.您希望使用的视图引擎类型

eg app.set('view engine', 'ejs') ;例如app.set('view engine', 'ejs') ; or app.set('view engine', 'pug') ;app.set('view engine', 'pug') ;

Here is the documentation https://expressjs.com/en/guide/using-template-engines.html这是文档https://expressjs.com/en/guide/using-template-engines.html

暂无
暂无

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

相关问题 Express Render无法正常工作返回错误:未指定默认引擎且未提供扩展名 - Express Render not working return error: No default engine was specified and no extension was provided 错误:未指定默认引擎,也未提供扩展名。 (以Express为框架) - Error: No default engine was specified and no extension was provided. (With Express as framework) 错误:未指定默认引擎且未提供扩展。 在快递 - Error: No default engine was specified and no extension was provided. in express 没有指定默认引擎,也没有提供扩展名 - No default engine was specified and no extension was provided express 错误:没有在github push之后指定默认引擎并且没有提供扩展名 - Error: No default engine was specified and no extension was provided after github push 错误:未指定默认引擎且未提供扩展(将应用程序部署到 Heroku) - Error: No default engine was specified and no extension was provided(deploying app to Heroku) 错误:未指定默认引擎,也未提供扩展名。 简单路由 - Error: No default engine was specified and no extension was provided. Simple Routing “错误:未指定默认引擎且未提供扩展名”在React中尝试进行服务器端渲染时 - “Error: No default engine was specified and no extension was provided” When trying to do Server Side Rendering in React 不阅读 CSS - Express ejs 布局 - Not reading the CSS - Express ejs layouts Node.js Express将模板引擎jade更改为ejs - Node.js Express change the template engine jade to ejs
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM