IBM Watson语音分析器发布请求问题

我是学生,学习编码和社区帮助表示赞赏。 我已经托pipe我的代码与域名https://depionicapp.herokuapp.com/ heroku。 当我正在做邮递员的请求时,我得到错误500但与云9我能够得到的结果。

 var http = require('http'); var bodyParser = require("body-parser") var vision = require('@google-cloud/vision'); // Authorizing on a per-API-basis. You don't need to do this if you auth on a // global basis (see Authorization section above). var express = require('express'); var router = express(); var visionClient = vision({ projectId: 'ionic-face-api', keyFilename: './ionic.json' }); router.use(bodyParser.urlencoded({extended: false })); router.use(bodyParser.json()); router.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }); var server = http.createServer(router); router.post('/info', function(req, res) { var text = req.body.text; console.log(text) var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3'); var tone_analyzer = new ToneAnalyzerV3({ username: 'username', password: 'password', version_date: '2016-05-19' }); tone_analyzer.tone({ text: text }, function(err, tone) { if (err) console.log(err); else res.send((JSON.stringify(tone, null, 2))); }); }); 

邮差:

 Postman request: https: //depionicapp.herokuapp.com/info Content - Type: application / json Body I am sending from postman {"text": "I am good.....blah blah..." }// Error 500 

所以,试图帮助你。 我编辑你的代码删除视觉模块,只需在Node.js中创build一个服务器来testing你的代码,完美的工作。

文件 toneExample.js:

 var http = require('http'); var bodyParser = require("body-parser"); var express = require('express'); var router = express(); router.use(bodyParser.urlencoded({extended: false})); router.use(bodyParser.json()); router.post('/info', function(req, res) { var text = req.body.text; console.log(text) var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3'); var tone_analyzer = new ToneAnalyzerV3({ username: 'yourUsername', password: 'yourPassword', version_date: '2016-05-19' }); tone_analyzer.tone({ text: text }, function(err, tone) { if (err) console.log(err); else res.send((JSON.stringify(tone, null, 2))); }) }); module.exports = router; 

文件 server.js:

 var server = require('./toneExample.js'); var port = process.env.PORT || process.env.VCAP_APP_PORT || 3000; server.listen(port, function() { console.log('Server running on port: %d', port); }); 

执行node server.js ,我在POSTMAN中为/info端点做了一个例子,并且得到了成功的结果:

在这里输入图像说明

信息

  • 节点版本:6.11.2
  • 安装模块: expressbody-parserwatson-developer-cloud

Obs .:如果你使用version_date: 2017-09-21这个postID的返回结果:愤怒,恐惧,喜悦,悲伤,分析,自信和尝试。 而且返回结果仅适用于分数达到0.5最小阈值的音调。

在官方API参考中查看更多信息。 我build议您尝试检查您需要发送的标题,您可以在自己的post使用的types,以及类似的东西。