我的印象是我在Bluemix上的应用程序正在运行较旧(错误)的代码版本。我做了几次更新,现在应用程序没有部署,也不会启动。当我检查日志文件时,我看到由于Express中间件更改而导致的一些错误不再受支持,应该被外部组件替换,例如,将bodyParser替换为body-parser。我已根据此页面将所有这些更改替换为express.middlewarename和新组件:https://github.com/senchalabs/connect#middleware
但是,当我尝试部署应用程序时,我仍然在日志文件中收到错误消息。消息是:
throw new Error('Most middleware (like ' + name + ') is no longer bundled with
Express and must be installed separately. Please see
https://github.com/senchalabs/connect#middleware.');
2017/4/5 午後2時42分48秒 ERR APP at Function.Object.defineProperty.get
(/home/vcap/app/node_modules/express/lib/express.js:107:13)
2017/4/5 午後2時42分48秒 ERR APP at Module._compile (module.js:409:26)
2017/4/5 午後2時42分48秒 ERR APP at Object.Module._extensions..js (module.js:416:10)
2017/4/5 午後2時42分48秒 ERR APP at Module.load (module.js:343:32)
我可以在我的机器上运行该应用程序。如果我从编译管道下载代码,它似乎很好。但是,我看到一些错误,这些错误指向我的文件中的注释或空行的代码行。 所有这些问题都让我相信Bluemix正在尝试部署错误版本的代码。 有谁知道如何解决它? 提前谢谢。
答案 0 :(得分:0)
首先,确保所有节点进程都被终止。
在linux上,您可以使用:ps aux | grep node。
进行检查之后重建你的npm。使用“npm build”命令。
启动你的服务器它会起作用。
答案 1 :(得分:0)
你可以做几件事 1.添加一个git commit标签作为终点的一部分。 Maven和其他构建工具具有此功能,尤其适用于微服务架构。 Spring有一个,如果node没有类似的东西,我会感到惊讶。这是我通过简短搜索找到的。 [1] 2.尝试执行cf d $ {app_name}然后重新推送您的应用。 3.如果您正在使用清单文件或使用cf p命令,请确保指定要部署的应用程序的路径。 CF上的节点还有一些其他细微差别,但您也可以在部署应用程序时将启动脚本分配给构建包。
我希望这会有所帮助。