我最近在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()或诗人特定的解决方案记录路线。