当涉及Node的后端时,我是一个菜鸟。
我正在云中的Ubuntu 14服务器上运行此文件。该文件正在使用pm2运行。 (例如,pm2启动newServer)。来自console.log()的输出既没有出现在我已经进入的终端中,也没有出现在浏览器的javascript控制台中。如何让文件记录输出到我已经进入的终端?或者我是否完全以错误的方式解决这个问题(我是否需要开始学习单元测试,是否有一些我应该使用的日志模块,......?)
编辑:pm2日志(以'pm2 logs'或'pm2 logs [app name]查看)不包含节点脚本中console.log语句的任何输出。
EDIT2:当我停止pm2进程并且只是用节点运行文件时,我也没有在任何地方输出日志。
EDIT3:当我在本地计算机上运行带有节点的脚本并通过localhost:8080访问浏览器中的页面时,仍然没有输出。
最终编辑:想出来。这是因为我的gulpfile中有条带调试。作为构建系统的新手,我没有意识到所述选项删除了console.logs。我发现通过使用node-inspector来实际查看正在运行的节点代码,并发现我的console.log语句已被替换为“void 0”。
var express = require('express'); //Require express for middleware use
const app = express();
var http = require('http').createServer(app);
var io = require('socket.io')(http); //IO is the server
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
//BASICS
app.use(express.static(__dirname + "/served")); //Serve static files
app.get('/', function(req, res){
res.sendFile('./index.html');
});
io.on('connection', function(socket){
// socket.on('chat message', function(msg){
// io.emit('chat message', msg);
// });
console.log("A user connected: ", socket.id);
});
http.listen(8080, function(){
console.log('listening on *:8080');
});
console.log('test')
// MONGODB
var url = 'mongodb://localhost:27017/test';
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
console.log("Connected correctly to server.");
db.close();
});
答案 0 :(得分:2)
我不是pm2的专家,但从快速浏览一下,它专为生产用途而设计,并且不会将任何内容记录到终端。
查看页面
https://github.com/Unitech/pm2
日志工具上有一个部分,它告诉您如何查看日志,使用这样的命令
pm2 logs APP-NAME # Display APP-NAME logs
否则,如果你真的只想看看它在做什么,只需用节点运行你的代码,例如
node myprogram.js
答案 1 :(得分:0)
使用pm2
模块时,每个单独的节点都会保存日志。要查看它们,您可以发出命令pm2 logs
以查看每个节点的日志。