node+express throw new Error('callback function required');
发布于 8 年前 作者 labike 5890 次浏览 来自 问答

var express = require(‘express’);

var app= express();

//设置handlebars视图引擎 var handlebars = require(‘express3-handlebars’) handlebars.create({defaultLayout:‘main’}); app.engine(‘handlebars’,handlebars.engine); app.set(‘view engine’,‘handlebars’);

app.set(‘port’,process.env.PORT||3000); app.use(express.static(__dirname + ‘/public’));

app.get(’/’,function(req,res){ res.render(‘home’); });

app.get(’/about’,function(req,res){ res.render(‘about’); })

//404 page catch-all处理器(中间件) app.use(function(req,res){ res.status(404); res.render(‘404’); });

//500 page 错误处理器中间件 app.use(function(err,req,res,next){ console.log(err.stack); //express的res.set和res.status()方法替换node的res.writeHead()方法 res.status(500); res.render(‘500’); });

app.listen(app.get(‘port’),function(){ console.log(‘express start on http://localhost:’ + app.get(‘port’) + ‘;press Ctrl-C to terminate’); });

FastStoneEditor.jpg

这里抛出不能请求回调是什么意思?请问怎么解决?谢谢

2 回复

可以根据异常栈, 自己去看express的代码啊express\lib\application.js:294. 是app.engine()调用失败了. 对你的代码, 如果只改一行, 就是handlebars.create({defaultLayout:‘main’});改为handlebars = handlebars.create({defaultLayout:‘main’});

回到顶部