【问题标题】:nodejs app works locally but not when deployednodejs 应用程序在本地工作,但在部署时不工作
【发布时间】:2014-11-02 23:46:01
【问题描述】:

我正在使用 iisnode 来托管节点应用程序。我在我的域名下实际部署它时遇到了麻烦。这是具有两个不同起点的主文件。未注释的代码只是一个简单的服务器,在通过我的域访问时可以正常工作(因此 iisnode 正在正确映射和处理节点应用程序)。注释代码是我正在开发的 express 应用程序的入口点,当我从本地主机查看时,这有效,但是当尝试通过我的域访问时,我收到“无法获取 application.js”错误。

        var http = require('http');

        http.createServer(function (req, res) {
            res.writeHead(200, { 'Content-Type': 'text/plain' });
            res.end('Hello, world!');
        }).listen(process.env.PORT);

        //require('./app/init');
        //var server = require('./app/server');
        //module.exports = server.start(process.env.NODE_ENV);

这是我的 server.js 文件。我认为这是一个路由问题,我用 console.log 函数代替了 indexRoute 函数,它永远不会触发。但我仍然不明白为什么这可以通过 localhost 正常访问,但不能在我的域下正常访问。

        var express = require('express');
        var routes = require('./routes');
        var app = express();

        function createApplication(environment) {
            app.get('/', routes.indexRoute);

            app.listen(process.env.PORT);
            return app;
        }

        module.exports.start = createApplication;

如果有人有兴趣,我可以给完整应用程序的 git 链接发消息。

【问题讨论】:

    标签: node.js express web-deployment


    【解决方案1】:

    尝试通过添加“0.0.0.0”作为要监听的参数来指定您要监听所有 IP 地址,而不仅仅是 localhost。还要添加一个回调来查看发生了什么。

    app.listen(process.env.PORT, '0.0.0.0', function(err) {
      console.log("Started listening on %s", app.url);
    });
    

    【讨论】:

      猜你喜欢
      • 2015-07-24
      • 1970-01-01
      • 2020-11-05
      • 2020-12-14
      • 1970-01-01
      • 2019-07-26
      • 2021-05-22
      • 2014-08-25
      • 1970-01-01
      相关资源
      最近更新 更多