node.js:req.next不是函数
我已经尝试将该项目部署到谷歌云平台。代码在我的本地机器上运行良好。但是,我在gcloud上遇到以下错误node.js:req.next不是函数,node.js,gcloud,Node.js,Gcloud,我已经尝试将该项目部署到谷歌云平台。代码在我的本地机器上运行良好。但是,我在gcloud上遇到以下错误 TypeError: req.next is not a function at done (/app/node_modules/express/lib/response.js:955) at tryRender (/app/node_modules/express/lib/application.js:641) at EventEmitter.render (/app/node_module
TypeError: req.next is not a function
at done (/app/node_modules/express/lib/response.js:955)
at tryRender (/app/node_modules/express/lib/application.js:641)
at EventEmitter.render (/app/node_modules/express/lib/application.js:591)
at ServerResponse.render (/app/node_modules/express/lib/response.js:960)
at (/app/routes/posts.js:15)
at tryCatcher (/app/node_modules/mongolass/node_modules/bluebird/js/release/util.js:16)
at Promise._settlePromiseFromHandler (/app/node_modules/mongolass/node_modules/bluebird/js/release/promise.js:510)
at Promise._settlePromise (/app/node_modules/mongolass/node_modules/bluebird/js/release/promise.js:567)
at Promise._settlePromise0 (/app/node_modules/mongolass/node_modules/bluebird/js/release/promise.js:612)
at Promise._settlePromises (/app/node_modules/mongolass/node_modules/bluebird/js/release/promise.js:691)
at Async._drainQueue (/app/node_modules/mongolass/node_modules/bluebird/js/release/async.js:138)
at Async._drainQueues (/app/node_modules/mongolass/node_modules/bluebird/js/release/async.js:148)
at Immediate.Async.drainQueues (async.js:17)
at runCallback (timers.js:666)
at tryOnImmediate (timers.js:639)
at processImmediate (timers.js:611)
routes/posts.js:
router.get('/', function(req, res, next) {
var author = req.query.author;
PostModel.getPosts(author)
.then(function (posts) {
res.render('posts', { //line 15
posts: posts
});
})
.catch(next);
});
getPosts功能:
getPosts: function getPosts(author) {
var query = {};
if (author) {
query.author = author;
}
return Post
.find(query)
.populate({ path: 'author', model: 'User' })
.sort({ _id: -1 })
.addCreatedAt()
.addCommentsCount()
.contentToHtml()
.exec();
},
您的node.js、express等版本是否与您的开发盒完全相同?这可能不是gcloud问题,请尝试使用node_ENV=production在本地运行,并查看它是否复制node-v:v6.10.2“依赖项”:{“config lite”:“1.5.0”、“connect flash”:“0.1.1”、“connect mongo”:“1.3.2”、“ejs”:“2.5.2”、“express”:“4.14.0”,“快速强大”:“1.0.0”,“快速会话”:“1.14.2”,“快速温斯顿”:“2.0.0”,“标记”:“0.3.6”,“时刻”:“2.15.2”,“蒙古驴”:“2.3.1”,“时间戳对象”:“1.3.0”,“sha1”:“1.1.1”,“温斯顿”:“2.2.0”}我已经测试过了,效果很好。你的app.yaml看起来怎么样?所有的URL都定义得很好吗?如果你用函数(req,res,next)替换函数(req,res),会发生什么?