【问题标题】:Getting an express app working online让快速应用程序在线工作
【发布时间】:2015-03-14 22:33:14
【问题描述】:

我是 expressjs 的新手,正在尝试让我的 express 应用程序(使用 express 生成器完成)在我的网站上运行,我目前上传了包含在这样的目录..

http://www.example.com/express-app-here

所以我可以看到它在线工作。但是,当我导航到应用程序所在的位置时,我似乎只获得了目录结构,而 express 并没有像我去 localhost:3000 时那样将我路由到适当的位置。

我认为这与 express 没有执行我的应用程序这一事实有关吗?在本地,

npm start 

需要在控制台上运行才能运行,是否有某种日志我需要在其中执行此命令?或者我需要在 app.js 或 /bin 目录中更改什么?

【问题讨论】:

  • 您是否使用端口 80 启动服务器?您是否将+x 权限设置为bin/www
  • 是的,Nodejs 需要不断运行才能为您的网站提供服务。您的远程 Web 服务器是否运行 Apache?如果是这样,那么我猜它正在占用所有端口 80,您需要告诉 Nodejs 监听另一个端口。
  • 在我看来,最大的问题是你需要在你的服务器上安装和运行nodejs。如果这只是一个 apache/PHP 服务器,则不能使用 node。如果你可以连接到它,并且有足够的权限来安装和执行它,你将能够安装你的应用程序(不要忘记 npm install)并运行它。

标签: javascript node.js http express


【解决方案1】:

正如 cmets 中所说,您需要在服务器上安装 nodejs。不是把node app目录复制到服务器那么简单。

您必须在服务器上安装 node 和 npm,然后从服务器上运行您的应用程序,可能使用 npm start,就像您在本地计算机上所做的那样。

从那里,您需要进入您的应用代码并确保存在 /express-app-here 的路线,除非您希望 www.example.com:3000 将您直接带到 express 应用。

【讨论】:

    【解决方案2】:

    基本上是这样做的:`

    var express = require('express');
    var http = require('http');
    
    
    var app = express();
    
    
    var server = http.createServer(app);
    var port = process.env.PORT || config.webServer.port || 3000;
    
    server.listen(port, function () {
        console.log('server running');
        console.log(port);
        console.log(server);
    });
    
    exports.module = exports = app;
    

    保存 app.js

    通过 cmd 进入路径。现在运行:-

    1)npm install express 2)npm安装http

    3)node app.js

    足以运行快速服务器

    【讨论】:

    • 他们已经有一个可以运行的 Express 应用程序,这个问题与在(大概)共享托管平台上托管该应用程序有关。
    猜你喜欢
    • 2017-11-11
    • 2019-10-11
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2015-04-17
    相关资源
    最近更新 更多