2

经过深入研究,我决定使用 Bluemix 对图像进行分类和识别。

我有一个关于如何使用 node.js 运行时开始编程的入门问题。

我尝试按照教程进行操作。但是,这只是代码片段。您如何运行它们并查看它在 Bluemix 环境中的工作情况?

我的进展:
-我在 Bluemix 中启动了 node.js 启动器应用程序。
-我添加了以下代码,app.js 看起来像这样:

    /*eslint-env node*/

//--------------------------------------------------------------------------
// node.js starter application for Bluemix
//--------------------------------------------------------------------------

// This application uses express as its web server
// for more info, see: http://expressjs.com
var express = require('express');

// cfenv provides access to your Cloud Foundry environment
// for more info, see: https://www.npmjs.com/package/cfenv
var cfenv = require('cfenv');

// create a new express server
var app = express();

// serve the files out of ./public as our main files
app.use(express.static(__dirname + '/public'));

// get the app environment from Cloud Foundry
var appEnv = cfenv.getAppEnv();

// start server on the specified port and binding host
app.listen(appEnv.port, '0.0.0.0', function() {
  // print a message when the server starts listening
  console.log("server starting on " + appEnv.url);
});

var watson = require('watson-developer-cloud');
var fs = require('fs');

/*var visual_recognition = watson.visual_recognition({
  username: '<username>',
  password: '<password>',
  version: 'v2-beta',
  version_date: '2015-12-02'
});*/

 var visualRecognition = watson.visual_recognition({
   version: 'v3',
   api_key: process.env.API_KEY || 'my api key',
   version_date: '2015-05-19'
 });

var params = {
  images_file: fs.createReadStream('./resources/car.png')
};

visualRecognition.classify(params, function(err, res) {
  if (err)
    console.log(err);
  else
    console.log(JSON.stringify(res, null, 2));
});

我正在尝试在 Bluemix 环境(实时编辑模式)中而不是在本地运行代码。当我点击运行代码时,部署停止,我什至无法找到导致这种情况发生的代码行。当我访问网页时,我收到以下错误:

404 Not Found:请求的路由('myvisualapp.mybluemix.net')不存在。

我不明白出了什么问题以及如何调试代码。

作者级别:初学者

4

2 回答 2

1
  1. 您需要快速“路由”(或至少拦截)客户端请求。现在,该请求没有处理程序。为此目的使用 app.get() 调用
  2. 您的 watson 服务调用现在不受用户请求的限制。您需要通过用户请求将其汇集起来。

例如:

app.get('/', function(req, res) {

// invoke watson services
// get the result.
// write back the result through the response object, res

}
于 2016-05-26T10:55:32.007 回答
1

您可以在https://github.com/watson-developer-cloud/visual-recognition-nodejs查看演示代码,并从这里开始。

此外,您可以从命令行查看部署到 bluemix 的应用程序的日志,使用

$ cf logs YOURAPPNAME --recent

其中 YOURAPPNAME 是您推送到 bluemix 的应用程序的名称。您可以使用

$ cf apps

如果你忘记了你使用的名字(这一直发生在我身上)。

于 2016-07-28T20:16:01.500 回答