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

代码在Heroku上中断,但在本地主机上工作

仲孙焱
2023-03-14

我有这个简单的代码:

router.get('/generateTime', cors(), (req, res, next) => {
    var now = new Date();
    res.json({
        "date": now.getDate(),
        "day": now.getDay(),
        "hours": now.getHours(),
        "minutes": now.getMinutes(),
        "month": now.getMonth(),
        "seconds": now.getSeconds(),
        "time": now.getTime(),
        "timezoneOffset": now.getTimezoneOffset(),
        "year": now.getFullYear() - 1900,
    });
});

这在本地主机上效果很好,并导致:

{"date":12,"day":3,"hours":17,"minutes":45,"month":8,"seconds":29,"time":1536759929173,"timezoneOffset":-120,"year":118}

但是当我在Heroku上使用它时,我得到了一个应用程序错误。日志状态:

2018-09-12t 13:50:25.541953 00:00 heroku[web . 1]:状态从启动更改为崩溃

2018-09-12T13:50:32.696713 00:00 heroku[router]: at=error code=H10 desc=“App crashed” method=GET path=“/” host=uczich-helper.herokuapp.com request_id=02574304-0a4f-413c-8da5-316a07805d81 fwd=“109.196.117.12” dyno= connect= service= status=503 bytes= protocol=https

2018-09-12T13:50:33.926344 00:00 heroku[路由器]: at=错误代码=H10 desc="应用程序崩溃"方法=GET路径="/"主机=uczich-helper.herokuapp.comrequest_id=965dc224-3922-400e-9af3-f7b648dc49a3 fwd="109.196.117.12"dyno=连接=服务=状态=503字节=协议=https

我正在使用免费的dynos。我尝试删除应用程序并创建一个新的,但没有运气。

编辑:

以下是www文件:

#!/usr/
bin / env
node

/**
 * Module dependencies.
 */

var app = require('../app');
var debug = require('debug')('mailer:server');
var http = require('http');

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '4000');
app.set('port', port);

/**
 * Create HTTP server.
 */

var server = http.createServer(app);

/**
 * Listen on provided port, on all network interfaces.
 */

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);

/**
 * Normalize a port into a number, string, or false.
 */

function normalizePort(val) {
    var port = parseInt(val, 10);

    if (isNaN(port)) {
        // named pipe
        return val;
    }

    if (port >= 0) {
        // port number
        return port;
    }

    return false;
}

/**
 * Event listener for HTTP server "error" event.
 */

function onError(error) {
    if (error.syscall !== 'listen') {
        throw error;
    }

    var bind = typeof port === 'string'
        ? 'Pipe ' + port
        : 'Port ' + port;

    // handle specific listen errors with friendly messages
    switch (error.code) {
        case 'EACCES':
            console.error(bind + ' requires elevated privileges');
            process.exit(1);
            break;
        case 'EADDRINUSE':
            console.error(bind + ' is already in use');
            process.exit(1);
            break;
        default:
            throw error;
    }
}

/**
 * Event listener for HTTP server "listening" event.
 */

function onListening() {
    var addr = server.address();
    var bind = typeof addr === 'string'
        ? 'pipe ' + addr
        : 'port ' + addr.port;
    debug('Listening on ' + bind);
}

下面是我的< code>package.json文件:

{
  "name": "mailer",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www"
  },
  "dependencies": {
    "body-parser": "~1.18.2",
    "cookie-parser": "~1.4.3",
    "debug": "~2.6.9",
    "ejs": "~2.5.7",
    "express": "~4.15.5",
    "morgan": "~1.9.0",
    "serve-favicon": "~2.4.5"
  },
  "devDependencies": {
    "cors": "^2.8.4",
    "nodemailer": "^4.6.7"
  }
}

共有1个答案

权黎昕
2023-03-14

事实证明,我必须将依赖项从<code>devdependences</code>移动到<code>依赖项</code>。不知道npm为什么现在这么做。

 类似资料:
  • 我有两个应用程序——基于浏览器的客户端和基于NodeJS的服务器,它们都使用WebSockets进行通信(我使用的是ColyseusJS库)。问题是,当我在本地主机上测试它们时,一切都正常,但当我将应用程序部署到我的Ubuntu VPS服务器时,它停止工作。 我在尝试连接时在浏览器中收到的消息是: 所以它到达服务器(因为当服务器被禁用时,消息是“连接建立中的错误:净::ERR_CONNECTION

  • 我使用devise gem with rails进行身份验证,我的应用程序在本地运行良好,但是在heroku上部署时无法访问device视图。 检查日志时出现以下错误: ←[app[web.1]:←[0mDevis处理e::SessionsController#新作为超文本标记语言 ←[app[web.1]:←[0mDevis处理e::SessionsController#新作为超文本标记语言 ←

  • 这是我的第一个问题,也是第一篇英文帖子,请耐心等待。 我正在研究ASP。NET MVC Web Api RESTful应用程序。对于用户身份验证,我想使用加密令牌。我在localhost上工作的想法是:用户请求令牌地址/令牌,在头中包括auth:昵称:passwd,服务器返回加密的令牌,用户将在下一个请求中使用它。所以,用户发送带有头身份验证令牌的请求:encryptedToken,服务器将解密该

  • Peer.JS server.js github链接到项目:链接 新来的赫罗库。任何帮助都将不胜感激!

  • 我有一个新安装的Debian Wheezy服务器,运行Jenkins1.596(最新版本),从官方的deb包安装。 为了和Jenkins一起玩,我编写了一个新的Maven项目,该项目可以通过Git进行验证。 下面是Jenkins服务器在构建期间生成的日志: 我尝试用JDK7和JDK8构建都失败了。

  • 在部署Meamapp时,mongoDB在本地节点上工作正常server.js但当我部署到heroku时,它显示错误 2019-06-04T02:49:12.401001 00:00 heroku[web.1]:状态从up更改为Start 2019-06-04T02:49:13.706279 00:00 heroku[web.1]:使用SIGTERM停止所有进程 2019-06-04T02:49:1