0

我正在尝试将 VMC 推送到我拥有的 Micro Cloud Foundry 实例上,但我被一个错误说

Unable to load shared library /var/vcap/data/dea/apps/{App-Name&ID}/app/node_modules/bcrypt/build/Release/bcrypt_lib.node 
 at Object..node (module.js:463:11)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at bindings (/var/vcap/data/dea/apps/Apptain-0-cb7703ae25d61741a91f9a828959ea6e/app/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
    at Object.<anonymous> (/var/vcap/data/dea/apps/{App-Name&ID}/app/node_modules/bcrypt/bcrypt.js:1:96)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)

bcrypt/node_modules/bindings/bindings.js 的第 74 行是

var b = require(n)

但这很奇怪,因为整个街区都是

var tries = []
    , i = 0
    , l = opts.try.length
    , n

  for (; i<l; i++) {
    n = join.apply(null, opts.try[i].map(function (p) {
      return opts[p] || p
    }))
    tries.push(n)
    try {
      var b = require(n)
      b.path = n
      return b
    } catch (e) {
      if (!/not find/i.test(e.message)) {
        throw e
      }
    }
  }

所以任何异常都应该被捕获,并在必要时被扔得更远。我知道我离地图还很远,但是任何人都可以提供的任何帮助将不胜感激。我可以毫无问题地在本地运行,但在 MicroCloud 上启动失败。

4

1 回答 1

1

免责声明:我绝不是 node.js 专家,但似乎 lib 的路径有问题,即“{App-Name&ID}”部分。

由于 bcrypt 是一个原生的 dep,因此需要进行特殊处理。所有这些都在这里解释:http: //blog.cloudfoundry.com/2012/05/24/cloud-foundry-supports-node-js-modules-with-npm/

如果您还没有,您可能想检查一下。另外,我不太确定该博客文章中描述的内容是否适用于(您的版本)微 CloudFoundry。您可能想在真正的 cloudfoundry.com 网站上尝试一下,看看它是否能解决您的问题。

于 2012-10-05T10:04:38.167 回答