jade 渲染不能执行
来源:6-6 第六天 存储并展现电影列表
慕设计5937481
2016-08-06
路由执行/movie 或者/movie/:id的时候可以执行,但是执行到
yield this.render('wechat/game' , params) ;的时候就没有了,也没有打印什么错误,不知道是哪里出了错误,上一步的params能打印出来
这是game.js
'use strict'
var wx = require('../../wx/index') ;
var wechatApi = wx.getWechat() ;
var util = require('../../libs/util') ;
var movieApi = require('../api/movie') ;
exports.guess = function *(next) {
var data = yield wechatApi.fetchAccessToken() ;
var access_token = data.access_token ;
var ticketData = yield wechatApi.fetchApiTicket(access_token) ;
var ticket = ticketData.ticket ;
var url = this.href.replace(':8000' , '') ;
var params = util.sign(ticket , url) ;
yield this.render('wechat/game' , params) ;
}
exports.find = function *(next) {
var id = this.params.id ;
var data = yield wechatApi.fetchAccessToken() ;
var access_token = data.access_token ;
var ticketData = yield wechatApi.fetchApiTicket(access_token) ;
var ticket = ticketData.ticket ;
var url = this.href.replace(':8000' , '') ;
var params = util.sign(ticket , url) ;
var movie = yield movieApi.searchById(id) ;
params.movie = movie ;
yield this.render('wechat/movie' , params) ;
}这里是app.js
var Koa = require('koa') ;
var wechat = require('./app/controllers/wechat') ;
var mongoose = require('mongoose') ;
var views = require('koa-views') ;
var dbUrl = 'mongodb://localhost/movie' ;
var fs = require('fs') ;
mongoose.connect(dbUrl) ;
//models loading
var models_path = __dirname + '/app/models' ;
var walk = function(path){
fs
.readdirSync(path)
.forEach(function(file){
var newPath = path + '/' + file ;
var stat = fs.statSync(newPath) ;
if(stat.isFile()){
if(/(.*)\.(js|coffee)/.test(file)) {
require(newPath) ;
}
}
else if(stat.isDirectory()) {
walk(newPath) ;
}
})
}
walk(models_path) ;
var menu = require('./wx/menu') ;
var wx = require('./wx/index') ;
var wechatApi = wx.getWechat() ;
var config = wx.getConfig ;
wechatApi.deleteMenu().then(function(){
return wechatApi.createMenu(menu) ;
})
.then(function(msg){
console.log(msg) ;
})
var app = new Koa() ;
var Router = require('koa-router') ;
var router = new Router() ;
var game = require('./app/controllers/game') ;
app.use(views(__dirname + '/app/views/pages' , {
extention: 'pug'
}))
router.get('/movie' , game.guess) ;
router.get('/movie/:id' , game.find) ;
router.get('/wx' , wechat.hear) ;
router.post('/wx' , wechat.hear) ;
app
.use(router.routes())
.use(router.allowedMethods()) ;
app.listen(3000) ;
console.log('app is listening at 3000') ;写回答
3回答
-
mas123
2016-09-18

老师,出现了这个问题。。数据库确定连接上了,就是传不进数据库 这是什么原因啊。。
022016-09-20 -
慕设计5937481
提问者
2016-08-10
已经解决了,在调用app.views() ,设置静态文件的路径的时候好像最后一级文件夹的名字不是views的话好像就不能渲染,之前的文件夹的布局和老师您的不一样,之后换成您这样的就可以了,真是有点奇怪!
00 -
Scott
2016-08-09
这么神奇,会不会是 jade 改为 pug 的原因,安装一个老的 jade 版本试试看呢
没有报错很奇怪,不传 params 直接 render 试试呢
00
相似问题
