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

Node.js 如何远程读取节点js日志消息,node.js,server,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 我的问题:在哪里查看此服务器以读取所有日志消息?当我

我的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=函数(应用程序){
app.post('/message',函数(请求、响应){
console.log(request.body);
日志(request.body.body);
console.log(request.body.From);
回复。发送(“Heyyo!”);
});
app.get('/',函数(req,res){
console.log(“欢迎到家”);
res.render('index',{标题:“主页”,描述:“欢迎使用Jarvis HD后端”});
});
}

首先,当您在SSH shell中运行
节点服务器.js
时,您创建的节点进程将只在您保持SSH连接打开的情况下有效

您正在查找的
console.log
消息发生时将显示在您的SSH窗口中。消息
我们已在端口9000启动服务器
来自
server.js
中从第二行到最后一行

http://localhost:9000
不起作用,或者是因为您在自己的计算机上尝试了它(localhost指向127.0.0.1,这是您自己的计算机),或者是您退出了SSH shell中的节点进程并执行了类似于
wget的操作http://localhost:9000
(由于您退出了节点进程,服务器停止,因此失败)

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


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


至于节点退出,无论何时停止节点进程或退出SSH,您都有很多选择。就我个人而言,我使用pm2,因为它会在崩溃时为您重新启动节点进程<代码>永久是另一个流行选项。您还可以使用basic
nohup
命令将节点进程置于后台,以便在退出SSH会话后继续运行-停止/重新启动服务器更麻烦。

首先,当您在SSH shell中运行
Node server.js
时,您创建的节点进程将只在您保持SSH连接打开的情况下有效

您正在查找的
console.log
消息发生时将显示在您的SSH窗口中。消息
我们已在端口9000启动服务器
来自
server.js
中从第二行到最后一行

http://localhost:9000
不起作用,或者是因为您在自己的计算机上尝试了它(localhost指向127.0.0.1,这是您自己的计算机),或者是您退出了SSH shell中的节点进程并执行了类似于
wget的操作http://localhost:9000
(由于您退出了节点进程,服务器停止,因此失败)

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


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


至于节点退出,无论何时停止节点进程或退出SSH,您都有很多选择。就我个人而言,我使用pm2,因为它会在崩溃时为您重新启动节点进程<代码>永久是另一个流行选项。您还可以使用basic
nohup
命令将节点进程置于后台,以便在退出SSH会话后继续运行-停止/重新启动服务器更麻烦。

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

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

pm2 logs [app_id]
您可以通过以下方式查看正在运行的应用程序:

pm2 list

如果您想在终端上实时查看console.logs之类的应用程序日志,我建议您使用“

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

pm2 logs [app_id]
您可以通过以下方式查看正在运行的应用程序:

pm2 list

您是否已配置nginx为您的节点应用提供服务?“如果没有,你就得先这么做。”凯拉什约格什瓦,我没有。我该怎么做?您需要在服务器上安装nginx,我将与您共享一个文档,忽略最后一部分。您是否已配置nginx为您的节点应用提供服务?“如果没有,你就得先这么做。”凯拉什约格什瓦,我没有。我该怎么做?您需要在服务器上安装nginx,我将与您共享一个文档,忽略最后一部分。如果我不能在localhost或live url中查看后端日志消息,那么我的端口在哪里运行(9000)?SSH不知何故读取了我的第一条控制台消息“我们已在端口9000上启动了服务器”,因此我的服务器应该运行在某个地方,以便我能够访问我设置的其他路由,如索引。基本上,我需要遵循哪些步骤才能看到控制台消息