当前位置: 首页 > 知识库问答 >
问题:

托管节点时键入错误。Heroku上的js应用程序

邵璞
2023-03-14

我有我的节点。具有依赖项的js应用程序

{
  "name": "application-name",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app"
  },
  "dependencies": {
    "express": ">=2.2.0",
    "jade": "*",
    "stylus": "*",
    "mongodb": ">= 0.9.6-7"
  }

}

它在我的本地主机上运行良好

当我在heroku上托管我的节点应用程序时,我遇到了以下错误。

TypeError:对象#在对象上没有“randomBytes”方法。MemoryStore上的uid(/app/node_modules/express/node_modules/connect/lib/utils.js:121:17)。在对象的generate(/app/node_modules/express/node_modules/connect/lib/middleware/session.js:204:27)处生成(/app/node_modules/express/node_modules/connect/lib/middleware/session.js:288:13)。session[as handle](/app/node_modules/express/node_modules/connect/lib/middleware/session.js:297:7)位于下一个对象(/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)。cookieParser[as handle](/app/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:60:5)位于下一个对象(/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)。expressInit[as handle](/app/node_modules/express/lib/middleware.js:31:5)位于下一个对象(/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)。查询[作为句柄](/app/node_modules/express/node_modules/connect/lib/middleware/query.js:44:5)

我试着一个接一个地移除线条,然后到达我移除的地方

app.use(express.session({ secret:'yodawgyo' }));

该应用程序给出了“你好世界”的回应。请参阅下面的完整代码。

var express = require('express');
var crypto = require('crypto');//for gravatar

var passport = require('passport')
  , OpenIDStrategy = require('passport-openid').Strategy
  , GoogleStrategy = require('passport-google').Strategy
  , AOLStrategy = require('passport-aol').Strategy
  , YahooStrategy = require('passport-yahoo').Strategy;;



passport.serializeUser(function(user, done) { 
  done(null, user);
});

passport.deserializeUser(function(obj, done) {
  done(null, obj);
});

var app = module.exports = express();

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.cookieParser());


//NO ISSUES WITH HEROKU IF I COMMENTED BELOW LINE   
  app.use(express.session({ secret:'yodawgyo' }));


  app.use(app.router);

});

app.get('/', function(req, res) {
  res.send("Hello World");
});

app.listen(process.env.PORT || 5000, function() {
  console.log("listening on 5000");
});

请帮帮我。

共有1个答案

张昊穹
2023-03-14

我也有同样的问题。它是通过向package.json添加“引擎”块来解决的,该块指示Heroku使用特定版本的节点和npm。最有可能的是,您正在使用比Heroku默认0.4.7版本更新的节点

看https://devcenter.heroku.com/articles/nodejs-support#versions

 类似资料:
  • 2020-01-28T01:42:46.028688+00:00 Heroku[web.1]:使用命令启动进程 2020-01-28T01:42:45.000000+00:00APP[api]:生成成功 2020-01-28T01:42:48.451589+00:00Heroku[web.1]:状态从启动更改为崩溃 2020-01-28T01:42:48.433700+00:00 Heroku[W

  • 我有一个使用Twitter API开发的Nodejs应用程序。当托管在Heroku上时,它会出现以下错误: 2018-12-14T10:00:03.678180 00:00 heroku[web.1]:错误 R10(启动超时)- 在搜索时,我遇到了这些StackOverflow问题q1 q2,但它们都使用ExpressJS并监听固定端口,而不是Heroku提供的端口,而我的应用程序没有使用Expr

  • 我正在制作托管在heroku上的NodeJS应用程序并使用MongoDB地图集作为后端。当我通过POSTMAN向应用程序发送POST请求时,它显示: 在我看来,节点应用程序无法连接到MongoDB地图集集群。如果是这样,那么我如何将其与MongoDB连接。 谢谢

  • 我试图部署以下web应用程序与heroku: https://github.com/darego1990/web1 虽然我收到以下生成日志错误,但我不确定原因: NPM ERR!Linux4.4.0-1031-aws npm ERR!argv"节点"/tmp/build_f85d5b0987590f76e56a2945b6c4ccc1/. heroku/节点/bin/npm"运行"构建"npm E

  • 我正在使用已知来连接我的应用程序中的 postgres。我在运行时收到以下错误 参考一些线程,我知道我必须添加事务调用,但我是否需要添加应用程序的所有sql调用? 在留档中,它没有给我关于何时添加这个的详细信息?为什么是必须的?我的查询大多是“GET”类型,因此不确定这些查询是否需要应用事务?

  • 我准备了一个简单的应用程序来测试是否在Heroku上工作。在本地似乎工作良好,不幸的是在Heroku加载一段时间后我收到“服务不可用”错误。有人能给出这个错误的原因是什么,如何运行这个应用程序吗? Heroku本地web 本地工作良好 在Git上回购:https://github.com/tomaszchmura/onheroku