node.js - 找不到模块'swagger_params_parser'
问题描述
我有一个使用Swagger创建的 Swagger NodeJS 项目
Swagger 使用 swagger-connect 0.1.0 开箱即用,但我现在使用手动说明升级到 swagger-connect 0.7.0 ,其中包括将以下内容添加到 config/default.yml:
_swagger_params_parser: # <= Add this definition
name: swagger_params_parser
jsonOptions: {}
urlencodedOptions:
extended: false
multerOptions:
inMemory: true
textOptions:
type: "*/*"
在“swagger_controllers:”部分下,我添加了:
- swagger_params_parser
这在我的本地机器上运行良好,但是当我推送到服务器时,它会抛出错误:
Error initializing middleware
May 22 13:25:27 myserver "myapp": Error: Cannot find module '/var/www/myapp/node_modules/swagger-connect/node_modules/swagger-node-runner/node_modules/bagpipes/lib/fittings/swagger_params_parser'
我通过以下方式启动服务器:
node app.js
所以它看起来像是我的本地机器上的潜在依赖流血,但我已经销毁 (rm -Rf) 'node_modules' 并重新运行npm install
,它在我的本地机器上仍然可以正常工作,但在服务器上中断。
为什么缺少 swagger-params-parser 的任何想法?
另外,另一个奇怪的事情是 swagger-params-parser在目录''中本地不/var/www/myapp/node_modules/swagger-connect/node_modules/swagger-node-runner/node_modules/bagpipes/lib/fittings/swagger_params_parser
存在,但在本地它可以工作!?
解决方案
问题原来是node_modules
服务器上的一个杂散目录(我们通常使用node_modules_production
)。
我从中学到了两件事:
1.)node_modules
用于代替node_module_production
它是否存在。我的 RPM 没有覆盖目录,因此留下了一个旧副本,node_modules
在某些时候被错误地打包了。swagger 应用程序正在加载模块,node_modules
而不是node_modules_production
2.) swagger_params_parser 确实丢失了,即使在代码的工作版本上也是如此,所以它看起来像这个错误:
Error initializing middleware
May 22 13:25:27 myserver "myapp": Error: Cannot find module '/var/www/myapp/node_modules/swagger-connect/node_modules/swagger-node-runner/node_modules/bagpipes/lib/fittings/swagger_params_parser
具有误导性,因为该模块从不存在,至少在 0.7.0 版本中swagger-connect
推荐阅读
- java - 在哪里保存 logback.xml 文件以在 Java 中使用 Logger slf4j
- python - 编写 Python 脚本 - GUI 选项?
- python - Pandas sort_values 函数占用大量内存,无需任何赋值操作
- java - Android Studio 在更改布局后使用 setOnTouchListener
- angular - 在孩子中访问父母的ngForm
- git - 致命:无法访问“.....”:gnutls_handshake() 失败:握手失败
- java - 如果 POJO 类的属性之一为空,如何在将 JSON 映射到 POJO 时处理 500 内部错误
- ios - 谷歌登录 iOS 崩溃?
- ruby-on-rails - 使用 RSpotify Gem 和 Spotify 在 URI 中包含一个查询字符串,这使其成为未经批准的源、rails、heroku
- c - crypt() 不返回标准 MD5 哈希?