2013-01-18 71 views
0

我最近在poet上設置了我的快遞站點。我可以使用post.url和所有這些都提供給所有的意見,除了URL路由當地人 - 比如,在我blog.jade觀點:跟蹤節點/快遞的路由錯誤

ul.blog-preview$ 
    each post in postList$ 
     li$ 
     a(href=#{post.url}) #{post.title}$ 

視圖渲染罰款,但路線快遞嘗試點擊post.url時:「http:// localhost:8080/undefined/post/poet-testundefined」,其中我試圖訪問的帖子被稱爲「詩人測試」。所以,我嘗試了看法

p #{post.url} 

內,並讓我吃驚打印出post.url它打印出來罰款後/詩人測試。所以,顯然我嘗試瀏覽到本地主機:8080/post/poet-test,但是由於post.title上的引用錯誤,這並不起作用,我懷疑這是一個問題,因爲該帖子以某種方式在路由中迷路了。

這是我的site.js(或app.js,因爲大多數都被稱爲),並且我已經包含了我認爲必須與解決此問題相關的內容。

var express = require('express') 
    , app  = module.exports = express() 
    , http  = require('http') 
    , poet  = require('poet')(app) 

poet 
    .createPostRoute() 
    .createPageRoute() 
    .createTagRoute() 
    .createCategoryRoute() 
    .init(function(locals) { 
    locals.postList.forEach(function (post) { 
    console.log('loading post: ' + post.url) 
}) 
    }) 

app.configure(function(){ 
    //...etc 
    app.use(app.router); 
    //...etc 
    app.use(express.static(__dirname + '/public')); 
}); 
//Dev settings 
app.configure('development', function(){ 
    app.use(express.errorHandler({ dumpExceptions:true, showStack:true })); 
    app.set('port', process.env.PORT || 8080); 
    app.use(express.logger('dev')); 
}); 
//Production settings 
//....etc 

// controllers - load them 
controllers = ["pages", "blog"] 
for (i in controllers) { 
    controller = require('./controllers/' + controllers[i]); 
    controller.setup(app) 
} 

http.createServer(app).listen(app.get('port'), function(){ 
    console.log("Express server listening on port " + app.get('port')); 
});  

正如你所看到的,我檢查每個post.url它張貼在裝載poet.init(函數(POST){...}),每一類又檢查出具有正確/後/標題URL ...所以,我有點卡在這裏。也許用app.router()或詩人特定的解決方案記錄路線。

回答