如何远程读取节点js日志消息

时间:2016-11-19 15:37:39

标签: node.js server

我的NodeJS / Express服务器文件由AWS托管。我想阅读日志消息并尝试连接到我的远程服务器,如下所示:

ssh -i "server.pem" ec2-user@ipaddress.compute-1.amazonaws.com 

然后我进入我的所有服务器文件的后端目录并运行以下命令:

node server.js

我在终端收到消息:

We have started our server on port 9000

我的问题:我在哪里查看此服务器以阅读所有日志消息?当我转到localhost:9000时,该页面显示找不到网站。当我去远程站点jarvis.magainteractive.com时,我的终端没有任何变化。我希望能够从我的' / message'中看到所有控制台消息。和我的' /'在我的航站楼的路线。

以下是我的server.js代码:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({extended: false})); 
app.use(express.static(__dirname + '/public'));

app.set('views',__dirname + '/views');
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);

require('./routes/main')(app);

var server = app.listen(9000,function(){
    console.log("We have started our server on port 9000");
});

以下是我的路线档案(main.js):

module.exports = function(app) {

app.post('/message', function (request, response) {
  console.log(request.body); 
  console.log(request.body.Body);
  console.log(request.body.From);

  response.send("<Response><Message>Heyyo!</Message></Response>");
});

app.get('/', function(req,res) {    
    console.log("Welcome to home"); 
    res.render('index', {title:"Home page", description:"Welcome to the Jarvis HD Backend"});
});

}

2 个答案:

答案 0 :(得分:0)

首先,当您在SSH shell中运行node server.js时,只要您保持SSH连接打开,您创建的节点进程就会生效。

您正在查找的console.log消息会在SSH窗口中显示。消息We have started our server on port 9000来自server.js中的第2行到最后一行。

http://localhost:9000无法正常工作,因为您在自己的计算机上尝试过(localhost指向127.0.0.1,这是您自己的计算机),或者您退出了SSH shell中的Node进程并执行了类似操作wget http://localhost:9000(由于您退出节点进程而导致服务器停止,因此失败)。

jarvis.magainteractive.com无法正常工作,因为您的节点服务器在端口9000上运行。当您连接到http://jarvis.magainteractive.com时,您将通过端口80连接到您的服务器。

正如其中一条评论所说,你可以安装Nginx。它允许您将端口80请求代理到服务器的本地端口9000.您不必使用Nginx,但它很容易配置和设置。然后,您可以连接到http://jarvis.magainteractive.com,它将向端口9000发出请求。

对于节点退出,无论何时停止节点进程或退出SSH,都有一堆选项。就个人而言,我使用pm2,因为它会在崩溃时为您重新启动节点进程。 forever是另一种流行的选择。您还可以使用基本nohup命令将Node进程置于后台,以便在退出SSH会话后继续运行 - 停止/重新启动服务器会更加困难。

答案 1 :(得分:0)

如果您希望在终端上实时查看console.logs等应用程序日志,我建议您使用&#34;

启动应用程序
pm2 start app.js -n jarvis.com

然后查看您可以使用的所有应用程序日志:

pm2 logs [app_id]

您可以看到正在使用的应用运行:

pm2 list