我在 View 文件夹中有一个名为布局的文件夹,但当我运行代码时出现错误。
Error: ENOENT: no such file or directory, open:\nodejs\loginnew\views\layouts\layout.handlebars'
var routes=require('./routes/index');
var users=require('./routes/users');
var app=express();
app.set('views',path.join(__dirname,'views'));
app.engine('handlebars',exphbs({defaultLayout:'layout'}));
app.set('view engine','handlebars');
app.use(bobyParser.json());
app.use(bobyParser.urlencoded({extended:false}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname,'public')));
console.log(path.join(__dirname,'public'));
app.use(session({
secret:'secret',
saveUninitialized:true,
resave:true,
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(expressValidator({
errorFormatter:function(param,msg,value){
var namespace =param.split('.')
,root=namespace.shift()
,formParam=root;
while(namespace.length){
formParam+='['+namespace.shift()+']';
}
return{
param : formParam,
msg:msg,
value:value
};
}
}));
app.use(flash());
app.use(function(req,res,next){
res.locals.sussess_msg=req.flash('sucess_msg');
res.locals.error_msg=req.flash('error_msg');
res.locals.error=req.flash('error');
next();
});
app.use('/',routes);
app.use('/users',users);
app.set('port', process.env.PORT || 3000);
app.listen(app.get('port'),function(){
console.log('server start on port '+app.get('port'));
});
这是我的文件夹:
最佳答案
如果您没有使用任何布局,请尝试通过将defaultLayout和layoutDir设置为空白/空格来初始化引擎,如下所示。
app.engine(
'hbs',
expressHbs({
extname: "hbs",
defaultLayout: "",//"main-layout",
layoutsDir: "",//"views/layouts/"
})
);
关于mysql - 错误 : ENOENT: no such file or directory, 打开 'D :\nodejs\loginnew\views\layouts\layout. Handlebars 这个错误是我发现的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50740948/