【问题标题】:Heroku Node.js error: ReferenceError: server is not definedHeroku Node.js 错误:ReferenceError:服务器未定义
【发布时间】:2021-04-23 16:53:25
【问题描述】:

这是我的应用程序app.js:

var express=        require("express");

var app=    express();
app.get('/',function(req,res){
    console.log(req);
    res.send("Hello world");
});

app.get('*', function(req, res){
  res.send("Nothing to see here.", 404);
});

var port=   process.env.PORT || 3000;
app.listen(port,function(){
    var host=   server.address().address;
    var port=   server.address().port;
});

当我在本地运行 nodejs app.js 时,它按预期工作。我可以转到localhost:3000 并查看Hello world,但是当我将它推送到 Heroku 时,我会在我的日志中看到这个:

2016-10-25T03:37:09.449732+00:00 heroku[web.1]: Starting process with command `node app.js`
2016-10-25T03:37:11.207319+00:00 app[web.1]: /app/app.js:47
2016-10-25T03:37:11.207341+00:00 app[web.1]:    var host=   server.address().address;
2016-10-25T03:37:11.207342+00:00 app[web.1]:                                ^
2016-10-25T03:37:11.207343+00:00 app[web.1]: 
2016-10-25T03:37:11.207343+00:00 app[web.1]: ReferenceError: server is not defined
2016-10-25T03:37:11.207344+00:00 app[web.1]:     at Server.<anonymous> (/app/app.js:47:28)
2016-10-25T03:37:11.207345+00:00 app[web.1]:     at Server.g (events.js:291:16)
2016-10-25T03:37:11.207345+00:00 app[web.1]:     at emitNone (events.js:86:13)
2016-10-25T03:37:11.207346+00:00 app[web.1]:     at Server.emit (events.js:185:7)
2016-10-25T03:37:11.207346+00:00 app[web.1]:     at emitListeningNT (net.js:1278:10)
2016-10-25T03:37:11.207347+00:00 app[web.1]:     at _combinedTickCallback (internal/process/next_tick.js:71:11)
2016-10-25T03:37:11.207348+00:00 app[web.1]:     at process._tickCallback (internal/process/next_tick.js:98:9)
2016-10-25T03:37:11.207349+00:00 app[web.1]:     at Module.runMain (module.js:592:11)
2016-10-25T03:37:11.207349+00:00 app[web.1]:     at run (bootstrap_node.js:394:7)
2016-10-25T03:37:11.207350+00:00 app[web.1]:     at startup (bootstrap_node.js:149:9)
2016-10-25T03:37:11.287706+00:00 heroku[web.1]: State changed from starting to crashed
2016-10-25T03:37:11.290415+00:00 heroku[web.1]: Process exited with status 1

这是怎么回事?

【问题讨论】:

    标签: javascript node.js express heroku


    【解决方案1】:

    您在此处显示的内容没有定义变量“服务器”。不知道为什么它在本地工作,但它没有理由应该工作。

    发布您的完整 app.js 和 package.json,这可能有助于我们更加具体。

    【讨论】:

    • 啊,我忘了把server变量定义为app.listen()函数。
    猜你喜欢
    • 2017-06-20
    • 2019-06-09
    • 2021-07-12
    • 2022-01-21
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    相关资源
    最近更新 更多