Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在express Handlebar中配置文件扩展名_Javascript_Express_Express Handlebars - Fatal编程技术网

Javascript 在express Handlebar中配置文件扩展名

Javascript 在express Handlebar中配置文件扩展名,javascript,express,express-handlebars,Javascript,Express,Express Handlebars,我有一个把手配置 const path = require('path') const exphbs = require('express-handlebars') const morgan = require('morgan'); const multer = require('multer'); const express = require('express'); const erroHandler = require('errorhandler') const routes = req

我有一个把手配置

const path = require('path')
const exphbs = require('express-handlebars')

const morgan = require('morgan');
const multer = require('multer');
const express = require('express');
const erroHandler = require('errorhandler')
const routes = require('../routes/index');

module.exports = app => {

    app.set('port', process.env.PORT || 80) 
    app.set('views', path.join(__dirname, '../views'));
    app.engine('.hbs', exphbs({
        defaultLayout: 'main',
        partialsDir: path.join(app.get('views'), 'partials' ),
        layoutDir: path.join(app.get('views'), 'layouts'),
        helpers: require('../helpers')
    }))
    app.set('view engine', '.hbs');


    // middlewares
    app.use(morgan('dev'));
    app.use(multer({dest: path.join(__dirname, '../public/upload/temp')}).single('image'))
    app.use(express.urlencoded({extended: false}));
    app.use(express.json());

    //routes
    routes(app)

    // static files
    app.use('/public', express.static(path.join(__dirname, '../public')));


    // errorhandlers
    if ('development' === app.get('env')) {
        app.use(erroHandler)
    }

    return app;
}
但我得到了这个错误:

错误:eNote:没有这样的文件或目录,请打开“C:\Users\Diesan” Romero\Desktop\redsocial\views\layouts\main.Handlebar'


这是我的目录,怎么了

由于您的把手文件使用
.hbs
作为扩展名,因此在实例化把手时需要正确定义,如下所示:

exphbs.create({
    extname: '.hbs',
    // rest of options
})
或者修改您的代码:

app.engine('.hbs', exphbs({
    extName: '.hbs',
    defaultLayout: 'main',
    partialsDir: path.join(app.get('views'), 'partials' ),
    layoutDir: path.join(app.get('views'), 'layouts'),
    helpers: require('../helpers')
}))

或者只需将您的Handlebar文件扩展名更改为
filename.handlebar

我需要将创建函数放在哪里?引擎内部?@DiesanRomero已编辑。@DiesanRomero您的
views
文件夹位于
src
文件夹中。同时修复您的文件路径。我正在尝试使用这个:path.join(_dirname,../src/views)),但是我得到了src文件夹两次,当我删除它时,我没有得到该文件夹。那太令人困惑了me@DiesanRomero如何:
path.join(uu dirname,'../../src/views')