简体   繁体   English

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

[英]Error: Failed to lookup view “/packages” in views directory

I have the handelbars view "packages" already set up in my views folder. 我的views文件夹中已经设置了handelbars视图“ packages”。 I have a users.js file in my "routes" folder set up like so: 我在“ routes”文件夹中设置了一个users.js文件,如下所示:

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

//Get about
router.get('/about', function(req,res){
    res.render('about');
});

//Get services
router.get('/services', function(req,res){
    res.render('services');
});

//Get packages
router.get('/packages', function(req,res){
    res.render('/packages');
});

//Get incentives
router.get('/incentives', function(req,res){
    res.render('/incentives');
});

module.exports = router;

My index.js file also in the "routes" folder is: 我的index.js文件也位于“ routes”文件夹中:

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

//Get Homepage
router.get('/', function(req,res){
    res.render('index');
});

module.exports = router;

My app.js file is as follows: 我的app.js文件如下:

var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var exphbs = require('express-handlebars');

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

//Init App
var app = express();

//View Engine
app.set('views', path.join(__dirname, 'views'));
app.engine('handlebars', exphbs({defaultLayout: 'layout'}));
app.set('view engine', 'handlebars');

//Set Static Folder
app.use(express.static(path.join(__dirname, 'public')));

//BodyParser Middleware
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

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

//Set Port
app.set('port', (process.env.PORT || 3000));

app.listen(app.get('port'), function(){
    console.log('Server started on port '+ app.get('port'))
}); 

I don't understand what I am doing wrong when it comes to the incentives and packages views because the other views are working fine. 我不明白在奖励和打包意见方面我做错了什么,因为其他意见都很好。 Can anyone help? 有人可以帮忙吗?

As David above pointed out, make sure you dont have leading / for your routes 正如David所指出的,请确保您的路线没有领先/

//Get about
router.get('/about', (req,res) => {
    res.render('about');
});

//Get services
router.get('/services', (req,res) => {
    res.render('services');
});

//Get packages
router.get('/packages', (req,res) => {
    res.render('packages');
});

//Get incentives
router.get('/incentives', (req,res) => {
    res.render('incentives');
});

You need to remove the leading / from your res.render... statements for the incentives and packages routes. 您需要从res.render...语句中删除前导/ ,以获取奖励和打包路线。

Hope this helps! 希望这可以帮助!

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM