我正嘗試創建一個玉石視圖並使用快捷菜單加載它。路徑/
正確加載,但是當我加載helloworld
時,瀏覽器顯示爲Cannot get /helloworld
。無法使用快遞加載玉石視圖
我已經創建瞭如下觀點,並將其保存到的意見:
extend layout
block content
h1=title
p Hello! Hello World! Welcome to #{title}
在routes/index.js
我這樣做:
exports.helloworld=function(req,res){
res.render('helloworld',{title:'Hello World!'});
};
而在app.js
文件:
app.get('/helloworld',routes.helloworld);
UPDATE :
完整app.js
文件:
/**
* Module dependencies.
*/
var express = require('express')
,routes = require('./routes')
var app = module.exports = express.createServer();
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({ secret: 'your secret here' }));
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
app.get('/', routes.index);
app.get('/helloworld',routes.helloworld);
app.listen(3000, function(){
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
});
我routes.js
:
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
exports.helloworld=function(req,res){
res.render('helloworld',{title:'Hello World!'});
};
的layout.jade
沒有一個block content
,將它添加到的layout.jade
代替body!=body
導致此錯誤:
Error: /home/anr/Desktop/node js/withdb/views/layout.jade:7
5| link(rel='stylesheet', href='/stylesheets/style.css')
6| body
7| #content 8| block content
Invalid indentation, you can use tabs or spaces but not both
at Object.Lexer.indent (/home/anr/Desktop/node
js/withdb/node_modules/jade/lib/lexer.js:762:15)
at Object.Lexer.next (/home/anr/Desktop/node
js/withdb/node_modules/jade/lib/lexer.js:870:15)
at Object.Lexer.lookahead (/home/anr/Desktop/node
js/withdb/node_modules/jade/lib/lexer.js:114:46)
at Parser.lookahead (/home/anr/Desktop/node
js/withdb/node_modules/jade/lib/parser.js:100:23)
at Parser.peek (/home/anr/Desktop/node js/withdb/node_modules/jade/lib/parser.js:77:17)
at Parser.tag (/home/anr/Desktop/node js/withdb/node_modules/jade/lib/parser.js:733:22)
at Parser.parseTag (/home/anr/Desktop/node js/withdb/node_modules/jade/lib/parser.js:719:17)
at Parser.parseExpr (/home/anr/Desktop/node js/withdb/node_modules/jade/lib/parser.js:188:21)
at Parser.block (/home/anr/Desktop/node js/withdb/node_modules/jade/lib/parser.js:689:25)
at Parser.tag (/home/anr/Desktop/node js/withdb/node_modules/jade/lib/parser.js:806:26)
所以,用空格縮進,而不是導致一個空白頁,以load.This是我目前layout.jade
:
doctype html
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
body
block content
Sublime Text
縮進與four spaces
爲Tab
。
我不認爲你得到的錯誤是模板渲染相關。很可能你的'app.get'在錯誤的地方。你完整的'app.js'文件是什麼樣的? – lxe
你可以發佈你的完整路線文件嗎?它也是'不能得到\ helloworld'或'不能得到'/'helloworld'? – Kiran
@Kiran更新了'routes/index.js' – vamsiampolu