node.js - 无法在 View 目录中查找 View "index"| express | HBS 代替handlebars.js

标签 node.js express handlebars.js

view-engine

我已经安装了hbs而不是handlebar来进行动态模板,现在我陷入了这个问题。

Error: Failed to lookup view "index" in views directory "/home/trijay/Desktop/NodeJs/web-server/src/views"
    at Function.render (/home/trijay/Desktop/NodeJs/web-server/node_modules/express/lib/application.js:580:17)
    at ServerResponse.render (/home/trijay/Desktop/NodeJs/web-server/node_modules/express/lib/response.js:1008:7)
    at app.get (/home/trijay/Desktop/NodeJs/web-server/src/app.js:14:9)
    at Layer.handle [as handle_request] (/home/trijay/Desktop/NodeJs/web-server/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/trijay/Desktop/NodeJs/web-server/node_modules/express/lib/router/route.js:137:13)
    at Route.dispatch (/home/trijay/Desktop/NodeJs/web-server/node_modules/express/lib/router/route.js:112:3)
    at Layer.handle [as handle_request] (/home/trijay/Desktop/NodeJs/web-server/node_modules/express/lib/router/layer.js:95:5)
    at /home/trijay/Desktop/NodeJs/web-server/node_modules/express/lib/router/index.js:281:22
    at Function.process_params (/home/trijay/Desktop/NodeJs/web-server/node_modules/express/lib/router/index.js:335:12)
    at next (/home/trijay/Desktop/NodeJs/web-server/node_modules/express/lib/router/index.js:275:10)

下面是我的 app.js 代码,我还安装了 hbs、express 库。任何帮助将不胜感激

//app.js

const express = require('express')
const path = require('path')


const publicPath = path.join(__dirname, '../public')   //for accessing comeplete file

const app = express()   //express being initialised


app.use(express.static(publicPath))
app.set('view engine', 'hbs')    //use to set handle bars. we need to provide key value pair

app.get('', (req, res) => {
    res.render('index')             //need to provide the hbs file name which you will find in view
})


app.get('/weather', (req, res) => {
    res.send({
        latitude: -57.89,
        longitude: 78.42,
        location : 'New Delhi'
    })

})

app.listen(3000, () => {
    console.log('Server Started on port 3000')
})

最佳答案

views 目录添加到引擎选项中:

app.set('view engine', 'hbs') 
app.set('views', path.join(__dirname, '../views'));

正如您在错误消息中看到的:

Error: Failed to lookup view "index" in views directory "/home/trijay/Desktop/NodeJs/web-server/src/views"

res.render('index') 指向 src 目录中的某个位置。

关于node.js - 无法在 View 目录中查找 View "index"| express | HBS 代替handlebars.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58781630/

相关文章:

javascript - Node.js 视频的完整路径

json - NodeJS 异步 JSON 解析导致 Buffer.toString() 失败

node.js - 嵌套的 Lodash ForEach

node.js - 使用express,如何在不重新启动服务器的情况下加载 Controller 代码更改?

json - 如何在 Wiremock 中删除每个循环中的最后一个逗号

javascript - Handlebars ,访问每个循环变量的父级

node.js - 来自 mongoose 回调的 Express js res.redirect() 不起作用

mysql - 显示信息。使用 nodeJS 从 mySQL 数据库到网页

ember.js - 在 Ember.js Handlebars 模板中,有没有办法同时拥有静态和动态类属性?

ember.js - Handlebars 条件类属性