2017-11-21 15 views
1

저는 학생이며 코드 작성 및 커뮤니티 도움을 주시면 감사하겠습니다. 도메인 이름이 https://depionicapp.herokuapp.com/ 인 heroku에서 코드를 호스팅했습니다. 우편 배달부와 게시물 요청을 할 때 오류가 발생합니다. 500하지만 클라우드 9에서는 결과를 얻을 수 있습니다.IBM Watson 톤 분석기 게시 요청 문제

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 

답변

0

그래서, 당신을 도우려고. 비전 모듈을 삭제하는 코드를 편집하고 코드 테스트를 위해 Node.js에 하나의 서버를 만들고 완벽하게 작동합니다.

파일 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을 실행 한 후에, 나는 /info 엔드 포인트에 대한 POSTMAN 하나의 예를했고, 나는를 얻을 수 성공적인 결과 :

enter image description here

정보 :

  • 노드 버전 : 6.11.2
  • 모듈이 설치 : express는, body-parserwatson-developer-cloud

것을 제외 : 당신이 version_date: 2017-09-21 반환 사용하는 경우 포스트 톤 ID에 대한 결과 : 분노, 두려움, 기쁨, 슬픔, 분석적, 자신감 및 미정 그리고 결과는 최소 한계 값0.5에 해당하는 색조에 대해서만 결과가 나타납니다.

Official API Reference에 대한 자세한 내용을 참조하십시오. 나는 당신이 보내야하는 헤더를 확인하려고 시도하는 것이 좋습니다. 당신의 타입은 당신 몸의 post에서 사용할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 단지 점검 할 것이다. –

+0

큰 도움을 가져 주셔서 감사합니다. 도움에 깊이 감사드립니다. 지금 일하고 있습니다. –

+0

좋아요! ** StackOverflow에서 [guide] (https://stackoverflow.com/help/someone-answers)에 나오는 질문에 ** 표시하고 같은 문제를 가진 다른 사람들을 도우십시오. –