繁体   English   中英

nodejs应用程序在本地运行,但在部署时无法运行

[英]nodejs app works locally but not when deployed

我正在使用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函数,并且它永远不会触发。 但是我仍然不明白为什么这可以通过本地主机正常访问,但不能在我的域下正常访问。

        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链接。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM