使用OS X 10.11.4,Node.js无法获得res.render渲染。 Express3车把

时间:2016-06-07 04:27:39

标签: javascript jquery node.js express handlebars.js

我是这一切的新手。我已经通过几个不同的教程将得到相同的结果。我觉得有些东西与设置不兼容,或者我有点胖的东西。以下是我认为的相关文件。我可以得到res.send工作,但res.render不会渲染。我甚至不能让它抛出500或404错误。它确实找到了http://localhost:3000,但没有显示任何文字。我正在使用OS X 10.11.4,Node.js. Express3车把。

directory:
/Users/williamshaw/WebProjects/sicmobile

Williams-MacBook:sicmobile williamshaw$ ls

package.json    resources   sicmobile.js    views

bin node_modules    public  routes  vendors




sicmobile.js:

var path = require('path');
var express = require('express');

// set up handlebars view engine
var exphbs = require('express3-handlebars');
var app = express();

app.set('views', path.join(__dirname, '/views'));
app.engine('handlebars',
exphbs({defaultLayout: 'main'}));
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 catch-all handler (middleware)
app.use(function(req, res, next){
res.status(404);
res.render('404');
});

// 500 error handler (middleware)
app.use(function(err, req, res, next){
console.error(err.stack);
res.status(500);
res.render('500');
});

app.listen(app.get('port'), function(){
 console.log( 'Express started on http://localhost:' +
   app.get('port') + '; press Ctrl-C to terminate.' );
});

main.handlebars:

<!doctype html>
<html>
<head>
  <title>The Company>/title>
</head>
<body>
  <div style='position: absolute; top: 0; height: 40px;'>
    <h3> This is the header</h3>
  </div>

</div style='margin-top: 60px;'>
      {{{ body }}}
  </div>
<div style='position: absolute; bottom: 0;height:40px;'>
</div>

</body>
</html>

home.handlebars:

<!doctype html>
<h1>Welcome to Shaw Investment Company</h1>

about.handlebars:
<h1>This is the  About page.</h1>

400.handlebars:

<h1>404 - Not Found</h1>

500.handlebars:
<h1>500 - Server Error</h1>

1 个答案:

答案 0 :(得分:1)

您在main.handlebars中输入错误。

<title>The Company</title>

如果您检查开发者控制台中的页面元素,您将在标题标签中看到数据。

希望,这有帮助。