如何隐藏Mongo终端的输出(Node.Js)

4

我正在使用Node服务器中的MongoDB。

当我的程序运行时,在shell中会有很多输出,比如查询和其他信息。如果我没错的话,这对进程来说是更多的工作量,所以我想隐藏所有类型的输出。

我尝试用参数--quiet运行命令。

mongod --quiet

我猜测我在node的mongo驱动程序中遗漏了一些配置。
技术细节:
MongoDB版本:3.2.9
Node版本:v6.4.0

2
"--quiet" 的作用是让程序“少说话”。如果你输入 "mongo &>/dev/null",所有输出都会被重定向到 "/dev/null" 中,因此不会显示出来。 - fedorqui
@fedorqui 真是太棒了,谢谢你啊,现在能不能再给我解释一下发生了什么? - MatCas
1
很高兴它起作用了。我添加了一个答案来有足够的空间来解释它 :) - fedorqui
1个回答

6

mongod文档指出:

--quiet

Runs the mongod in a quiet mode that attempts to limit the amount of output.

This option suppresses:

  • output from database commands
  • replication activity
  • connection accepted events connection closed events

因此,仍然会从过程中输出一些内容。为了防止这种情况并隐藏所有的输出,包括stdout和stderr,您需要使用以下任意命令之一:

process &>/dev/null
process >/dev/null 2>&1

在您的情况下:
mongod &>/dev/null
mongod >/dev/null 2>&1

请查看什么是/dev/null 2>&1?以了解其工作原理的一些解释。


如何在Windows中实现相同的功能? - Pransh Tiwari
1
@PranshTiwari:请参见https://dev59.com/SHVC5IYBdhLWcg3wYQAp。 - Brett Zamir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接