我有一个使用Swagger
创建的Swagger NodeJS项目Swagger使用swagger-connect 0.1.0开箱即用,但我现在使用manual instructions升级到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
”中存在,但在本地它可以工作!?
答案 0 :(得分:0)
问题原来是服务器上的一个迷路node_modules
目录(我们通常使用node_modules_production
)。
我从中学到了两件事:
1。)如果node_modules
存在,则使用node_module_production
代替node_modules
。我的RPM没有覆盖目录,因此留下了node_modules
的旧副本,该副本在某些时候被错误打包。招摇的应用程序正在加载来自node_modules_production
而不是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
2。)swagger_params_parser确实缺失,即使在代码的工作版本上也是如此,所以看起来像这样的错误:
swagger-connect
具有误导性,因为该模块永远不会出现,至少在python3 -m pip install ipykernel
python3 -m ipykernel install --user
的0.7.0版