首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将服务连接到Cloud Foundry应用程序?

如何将服务连接到Cloud Foundry应用程序?
EN

Stack Overflow用户
提问于 2020-11-03 00:34:02
回答 1查看 85关注 0票数 0

我是IBM cloud的新手,我正在尝试构建一个应用程序,在这个应用程序中,我可以编写一个文本,按下一个按钮,然后服务音调分析器会分析该文本并返回一个JSON,这样我就可以显示它。

我已经创建了该服务的一个实例,并使用该服务上的“connections”选项卡将其连接到我的应用程序(工具链)。

我的应用程序上的app.js文件中也有以下代码:

代码语言:javascript
复制
const ToneAnalyzerV3 = require('ibm-watson/tone-analyzer/v3');
const { IamAuthenticator } = require('ibm-watson/auth');

const toneAnalyzer = new ToneAnalyzerV3({
  version: '2019-10-10',
  authenticator: new IamAuthenticator({
    apikey: [API key found in service credentials],
  }),
  url: [API url found in service credentials],
});

app.get('/', function(req, res) {
  res.render('index');
});

app.post('/api/tone', async function(req, res, next) {
  try {
    const { result } = await toneAnalyzer.tone(req.body);
    res.json(result);
  } catch (error) {
    next(error);
  }
});

问题是,当我在javascript上执行以下调用时:

代码语言:javascript
复制
$.post( "/api/tone", {text: textInput}, function(data){
        console.log(data);
    });

我得到错误: 500 (内部服务器错误)。

有人知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-10 18:32:10

问题是您正在发送req.body,以便对音调进行分析。如果你看一下API Docs - https://cloud.ibm.com/apidocs/tone-analyzer?code=node#tone -你会发现你只需要发送

代码语言:javascript
复制
const toneParams = {
  toneInput: { 'text': text },
  contentType: 'application/json',
};

我非常怀疑req.body是否有toneInput字段,如果它有contentType,它可能不会被设置为允许值之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64649504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档