Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js:req.next不是函数_Node.js_Gcloud - Fatal编程技术网

node.js:req.next不是函数

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

我已经尝试将该项目部署到谷歌云平台。代码在我的本地机器上运行良好。但是,我在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_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),会发生什么?