【问题标题】:Node.JS Express App Will Not Run on AWS EC2 Instance Running UbuntuNode.JS Express 应用程序不会在运行 Ubuntu 的 AWS EC2 实例上运行
【发布时间】:2015-06-07 00:25:22
【问题描述】:

在过去的 24 小时内,我已尝试让我的 express 应用程序运行。我按照教程,卸载然后重新安装所有东西,仍然......没有骰子。

这是我要安装的设置的M.E.A.N stack install wiki link

这是我尝试运行应用程序时发生的命令提示符中的代码

bitnami@ip-172-31-43-127:~/projects/sample$ ls
app.js  bin  node_modules  package.json  public  routes  views
bitnami@ip-172-31-43-127:~/projects/sample$ ./bin/www
nothing happens... it will just blink on this line forever♥
bitnami@ip-172-31-43-127:~/projects/sample$ DEBUG=new ./bin/www
same thing. it will blink forever an ⌂d ⌂♥
bitnami@ip-172-31-43-127:~/projects/sample$ DEBUG=new npm start
> sample@0.0.0 start /home/bitnami/projects/sample
> node ./bin/www
slightly different result... but the app is not running on localhost:3000♥
bitnami@ip-172-31-43-127:~/projects/sample$

我已尝试从 StackOverflow 实现此功能,但没有解决

谁能告诉我我做错了什么以及如何纠正这个问题?谢谢! :)

app.js 的内容

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var users = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
    app.use(function(err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});


module.exports = app;
var port = 3000;
app.listen(port, function() {
   console.log('Listening...');
});

【问题讨论】:

  • 请发布文字,而不是图片,谢谢 :)
  • @DaveNewton 我改了 :)
  • 如果您不向我们展示您的代码,您希望我们如何帮助您?
  • @jfriend00 我已经发布了 app.js 的内容。我的道歉

标签: node.js express


【解决方案1】:

您是否尝试过以普通方式运行

npm start

你也可以输入rm -rf bin/删除文件夹,然后在底部app.js添加

app.listen(port, function() {
   console.log('Listening...');
});

然后运行

node app

【讨论】:

  • 我尝试实施您的解决方案。我现在在控制台中得到“正在听...”,但该应用程序没有在我的 localhost:3000 上呈现网页
  • @MarkusProctor 尝试删除 module.exports = app;并且您的视图中是否有针对您拥有的路线的适当文件,请尝试转到 /hdjdjdj 或随机查看是否收到错误 404,如果您这样做了,那么它工作正常,您只需要修复您的路线或视图
  • 已实施且没有骰子。 Chrome 显示“此网页不可用。Error_Connection_Refused”。我直接从提供商处安装了该软件包,并没有进行任何更改。如果这有任何改变,我的 EC2 正在 Linux 上运行。
  • @MarkusProctor 好的,这听起来像是端口问题,请确保您的 ec2 实例上打开了端口 3000。谷歌如何做到这一点,然后让我知道它是否有效
  • 这里是我的实例ec2-52-7-174-251.compute-1.amazonaws.com 的网址,但运行应用程序根本不会更改页面内容。我猜 localhost:3000 的事情是有道理的,哎呀 :)
猜你喜欢
  • 2021-06-14
  • 2015-03-18
  • 1970-01-01
  • 2021-08-05
  • 2018-08-30
  • 1970-01-01
  • 2014-04-19
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多