【问题标题】:How to execute a file in windows using NodeJS?如何使用 NodeJS 在 Windows 中执行文件?
【发布时间】:2014-01-16 17:20:28
【问题描述】:

我安装了 Nodejs,并且是第一次使用它。 API 有点太通用了。第一个示例没有说明如何指定文件路径。我用代码设置了 testFile.js:

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type':     
'text/plain'});
  response.end('Hello World\n');
}).listen(8124);

console.log('Server running at     
http://127.0.0.1:8124/');

我通过输入 "node <enter> 1 + 1" 验证了 node.js 已正确安装并得到“2”的响应。然后我尝试了:

>node "C:\path\testNode.js"

这将返回...,这与传递一个不正确的文件没有什么不同

>node "C:\INCORRECTPATH\testNode.js"

然后我尝试删除括号,仍然没有工作。还尝试在运行“节点”命令之前更改目录。你猜怎么了!仍然没有工作。错误... 非常有用,但我只是不知道如何修复它..?

语法是什么?

【问题讨论】:

  • 进入文件所在目录,输入node testNode.js
  • @adeneo 你能说得更具体点吗?我已经尝试过这种效果Also tried doing a change directory before running "node" command. Guess what! Still no worky
  • 不确定我是否可以更具体,打开一个 DOS 窗口,转到包含文件的目录,通常使用类似 cd /mydirectory 的内容,然后运行 ​​node testNode.js
  • @adeneo - 在那种情况下,正如我在 OP 中解释的那样,我已经这样做了。

标签: windows node.js windows-server-2012


【解决方案1】:

更新

<AnticlimacticConclusion>
重启电脑解决了这个问题。
</AnticlimacticConclusion>

所以 node.js 确实安装了。它甚至给出了结果(请记住在 OP 1 + 1 返回 2)。但是,无论出于何种原因,PATH 仍然被抬高。 (是的,我尝试了一个新的 cmd 实例)。

(本文其余部分为旧资料,仅供参考)

什么不起作用

当我通过以下方式进入命令提示符时,命令不起作用:

start > run > cmd > node C:\path\testNode.js

它也不能使用我在开始菜单中的快捷方式来连接到 cmd 的管理模式版本,该快捷方式链接到:

%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat""

什么有效

我在我的电脑上进行了搜索,发现了一个名为“Node.js 命令提示符”的程序。我机器上的快捷方式指向:

C:\Windows\System32\cmd.exe /k "C:\Program Files\nodejs\nodevars.bat"

当我在预加载此批处理文件的情况下运行节点命令时,一切正常。例如

> node C:\path\testNode.js

返回Server running at http://127.0.0.1:8124/。一张图说1000字。注意第一行。

换句话说,这个批处理文件似乎是必需的。

【讨论】:

  • 不应需要批处理文件。如果您使用 MSI 安装节点,它应该已将节点添加到您的 PATH。您应该可以在常规命令提示符下键入 node
  • @josh3736 - 是的,我也这么认为。我从nodejs.org/download 安装了 MSI x64。就是这样不行。
  • 是的,有时您必须重新启动才能完全影响对 PATH 的更改。
【解决方案2】:

看起来您正在节点副本中执行节点命令。

如果您在单击开始菜单中的“Node.js”图标时弹出的窗口中工作,就会发生这种情况。

要以您尝试过的方式执行它,请从普通命令提示符运行它。即点击 windows-r,键入 cmd,按回车键,或在开始菜单中找到命令提示符。

您还可以通过要求从节点 repl 内部运行外部节点脚本。

 require("C:\\path\\testNode.js")

这只会在第一次工作,因为它会被缓存以供后续的 require 调用。

【讨论】:

    猜你喜欢
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 2020-11-18
    • 1970-01-01
    • 2011-08-05
    • 2018-01-21
    相关资源
    最近更新 更多