从Windows 8中的Visual Studio 2012执行程序后,Node.js控制台立即关闭

kri*_*hna 10 javascript console-application node.js windows-8 visual-studio-2012

我在Windows 8 PC中安装了Node.js并为Visual Studio 2012安装了Node.js插件.我从Visual Studio 2012执行了一个基本程序,它只是在控制台上打印一个字符串

consol.log("Hi There");
Run Code Online (Sandbox Code Playgroud)

Node.js控制台打印" Hi There "并立即终止.任何人都可以提供解决方案吗?

我已经经历过一个类似的问题,除了在代码中使用setTimeOut()之外,还有其他方法可以解决它吗?(为什么Node.js脚本控制台会立即在Windows 8中关闭?)

小智 16

从Visual Studio的"调试"菜单中选择"选项".在此之后选择"NodeJS Tools"并勾选"当进程正常退出时等待输入"复选框.

  • 所以这不再有效,或者我做错了什么.我只在Debug/Options/NodeJs Tools下有3个选项,当进程异常退出时,等待输入,...正常退出,并启用编辑并继续.我有3个检查,但F5仍然只是运行一个立即关闭的控制台窗口.如果按Ctrl + F5,控制台窗口将保持打开状态.这是在VS 2017 v 15.9.5下.只是好奇,如果这是预期的或我错过了什么.谢谢! (11认同)
  • 我得到的结果与上面的评论相同,Ctrl + F5 将使窗口保持打开状态,但常规 F5 将在最后一行代码后立即关闭 (2认同)

Wir*_*rie 10

node app.js您可以改为调用批处理文件,而不是直接从Visual Studio 执行:

wait.bat app.js
Run Code Online (Sandbox Code Playgroud)

其中的wait.bat内容简单:

node %1
pause press [enter]
Run Code Online (Sandbox Code Playgroud)

或者,您可以在一行上执行此操作,或将其包装在模块或函数中:

require('readline')
    .createInterface(process.stdin, process.stdout)
    .question("Press [Enter] to exit...", function(){
        process.exit();
});
Run Code Online (Sandbox Code Playgroud)

它使用当前标记为"不稳定"的Node模块来读取来自的输入stdin.它会忽略输入,然后使用该exit函数关闭进程.


Xha*_*lie 6

  1. 使用工具->选项,从菜单栏中打开Visual Studio 选项属性页。
  2. 在左侧的菜单树中,选择Node.js工具->常规
  3. 勾选标记的盒子“ 等待输入时处理正常退出 ”

在此处输入图片说明


小智 6

之前的回答:

从 Visual Studio 的“调试”菜单中选择“选项”。之后选择“NodeJS Tools”并勾选“进程正常退出时等待输入”复选框。

...如果您在没有调试的情况下运行,似乎可以工作。

调试>启动而不调试 Ctrl-F5

  • “以前的答案”是什么意思?答案按投票排序。 (2认同)