/movie 不能正常显示内容,页面一直显示 Not Found。默认返回404解决不了

来源:6-3 第六天 合体 Express 和 Koa 项目架构

任勉之

2017-06-25

/movie  这个路由转不过去,不能正常显示内容,页面一直显示 Not Found。

var app = new Koa()
var Router = require('koa-router')
var router = new Router()
var game = require('./app/controllers/game')

router.get('/movie', game.movie)

app
  .use(router.routes())
  .use(router.allowedMethods())
var wx = require('../../wechat/index')

exports.movie = function* (next) {
	var wechatApi = wx.getWechat()

	var data = yield wechatApi.fetchAccessToken()
	var access_token = data.access_token
	var ticketData = yield wechatApi.fetchTicket(access_token) 
	var ticket = ticketData.ticket
	var url = this.href

	var params = sign(ticket, url)

	console.log('SDK-data:' + JSON.stringify(params))

	this.body = ejs.render(tpl,params)

}

在Koa中status的状态码,默认是404,如果status在整个Request/Response周期没有发生变化,那么就意味这个Request就是404,如果在Request/Response周期内改变status,那么status就是200.

不太明白这句话的意思,这边的game.movie 没有让Request/Response周期发生变化吗?求指点

写回答

2回答

Scott

2017-06-25

是不是 koa 的版本太新了,用 koa 1.2.0 的版本试试,因为新版本需要配合 async 使用


另外,看看是不是项目中有多个 router,导致没成功,这个看上去奇怪,感觉是哪个小环节出了问题

1
3
Scott
回复
vincents
可以的
2017-11-18
共3条回复

任勉之

提问者

2017-06-25

router.get('/movie', function *(next){ 。。。}) ,不会进到 function *(next){ 。。。},里面,知道的大神麻烦请指点一下,谢谢了。

0
1
vincents
像老师说的,升级一下koa吧 版本问题导致.use(router)没成功
2017-11-17
共1条回复

7天搞定Node.js微信公众号

Koa框架、ES2015新特性、MongoDB,开发微信公众号

1742 学习 · 787 问题

查看课程