1

我已经安装了一些模块,当我在命令提示符下npm install <module>运行时我可以访问它们,但是当我在 IIS 下使用 运行应用程序时,我收到如下错误:nodeiisnode

Application has thrown an uncaught exception and is terminated:
Error: Cannot find module 'formidable'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (C:\Program Files\iisnode\www\helloworld\hello.js:3:18)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

到底是怎么回事?如果我正在使用,是否有不同的方式安装模块iisnode

这是我web.config的项目文件:

<configuration>
  <system.webServer>

    <!-- indicates that the hello.js file is a node.js application 
to be handled by the iisnode module -->

    <handlers>
      <add name="iisnode" path="hello.js" verb="*" modules="iisnode" />
    </handlers>

  </system.webServer>
</configuration> 
4

2 回答 2

1

从 npm 1.0 开始,有两种安装方式:全局和本地。在此处阅读文档。

全局安装 (with -g) 用于您想在 shell 或命令行中使用的东西。

当你在本地安装一个包时,通过npm install onepackage,它会将依赖插入到 package.json 并在目录下添加库node_modules。这主要是针对您要在程序中使用的包,使用require('onepackage').

于 2014-04-14T18:36:36.360 回答
0

看来我发现了问题。与我使用的大多数包管理器不同,npm它不会全局安装东西,而只会安装到您安装时所在的文件夹。我安装在正确的文件夹中,它似乎正在工作。

于 2014-04-14T18:25:43.233 回答