1

アプリケーションから Watson User Modeling サービスが削除されたようです。アプリで次のエラーが発生します。

2015-04-09T15:23:38.44-0400 [App/0]   ERR /home/vcap/app/lib/config.js:33
2015-04-09T15:23:38.44-0400 [App/0]   ERR                 return vcapServices["user_modeling"][0].credentials.url;
2015-04-09T15:23:38.44-0400 [App/0]   ERR                                                     ^
2015-04-09T15:23:38.44-0400 [App/0]   ERR TypeError: Cannot read property '0' of undefined
2015-04-09T15:23:38.44-0400 [App/0]   ERR     at Object.watsonUrl (/home/vcap/app/lib/config.js:33:53)
2015-04-09T15:23:38.44-0400 [App/0]   ERR     at getPersonality (/home/vcap/app/lib/app.js:203:25)
2015-04-09T15:23:38.44-0400 [App/0]   ERR     at async.waterfall.personalityUser1 (/home/vcap/app/lib/app.js:278:13)
2015-04-09T15:23:38.44-0400 [App/0]   ERR     at fn (/home/vcap/app/node_modules/async/lib/async.js:641:34)
2015-04-09T15:23:38.44-0400 [App/0]   ERR     at Object._onImmediate (/home/vcap/app/node_modules/async/lib/async.js:557:34)
2015-04-09T15:23:38.44-0400 [App/0]   ERR     at processImmediate [as _immediateCallback] (timers.js:345:15)

何が起こったのか、これを修正するために何をする必要がありますか?

4

1 に答える 1

3

User Modeling サービスは最近名前が変更されました。それがパーソナリティ インサイトになりました。新しい Personality Insights サービスをアプリに追加し、VCAP_SERVICES を読み取るためのコードを更新することで、これを修正しました。

以下を実行する代わりに:

var VCAP_SERVICES = process.env["VCAP_SERVICES"],
    vcapServices;

if (VCAP_SERVICES) {
    vcapServices = JSON.parse(VCAP_SERVICES);
}

return vcapServices["user_modeling"][0].credentials.url;

代わりに次のことを行ってください。user_modeling は、personality_insights に関連していることに注意してください。

var VCAP_SERVICES = process.env["VCAP_SERVICES"],
    vcapServices;

if (VCAP_SERVICES) {
    vcapServices = JSON.parse(VCAP_SERVICES);
}

return vcapServices["personality_insights"][0].credentials.url;

さらに、API が少し変更されました... URL は、 から取得する URL になりましたVCAP_SERVICES + /v2/profile。そうだったVCAP_SERVICES + /api/v2/profile

より正確にはvcapServices["personality_insights"][0].credentials.url + "/v2/profile"

于 2015-04-09T20:51:06.013 に答える