1

我正在完成一个关于 Node.js 的教程,该教程从一个简单的身份验证程序开始。这是我第二次做这个教程,也是第一次,一切都很好。但是,在卸载 node 并从头开始(通过 npm 安装 node.js 和 express)时,身份验证错误的实例化如下所示。

program.confirm('destination is not empty, continue? ', function(ok){
              ^
TypeError: Object #<Command> has no method 'confirm'
    at C:\Users\Kyle\AppData\Roaming\npm\node_modules\express\bin\express:251:15

    at C:\Users\Kyle\AppData\Roaming\npm\node_modules\express\bin\express:382:5
    at Object.oncomplete (fs.js:107:15)

我在 Windows 机器上,运行 Node.js v0.10.20 和 express v3.4.1。

这是此处引用的不一致 -g 标志安装的结果吗?

编辑:Express 在其他目录中初始化应用程序很好,即使是那些具有子目录 Node.js 的应用程序。这个问题文件夹的路径是C:\dev\Node.js\......知道为什么 Express 拒绝初始化这个文件夹中的东西吗?

4

2 回答 2

1

我有同样的问题。您可以修复问题的根源(不指定空目录),而不是修复问题。在我的例子中,我指定了一个空目录,但它与前一个开关相关联。

我不得不改变:

node_modules/.bin/express -s -e -c ./server

至:

node_modules/.bin/express -s -e -c css ./server

否则,它认为服务器路径是要使用的 css 类型,并将代码路径设置为“。”

于 2013-10-18T01:45:16.690 回答
1

尝试:

  1. 删除您的目录“C:\Users\Kyle\AppData\Roaming\npm\node_modules\express\node_modules\commander”。

  2. 全局安装节点模块“commander 1.3.2”。命令行: $ npm install -g 指挥官@1.3.2

  3. 再次运行“快递”。

这似乎是指挥模块的新版本(2.0.0)提到的问题。

它适用于我的 Mac。

祝你好运~

于 2013-10-18T10:46:52.710 回答