希望能帮助确定从BlueMix提供的Node.JS应用程序文件的起点

时间:2015-11-16 02:24:20

标签: javascript node.js ibm-cloud

我一直在阅读JS的教程,我已经很好地了解了语法和方法,现在我正在寻找如何使用Node.JS来构建应用程序的方法。 BlueMix。我对Java非常流利,但我对网络编程并不陌生,所以我很失落如何开始。原谅我目前的绝对初学者状态,但我真的被困了。这是他们为您建立的文件。

/*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);
});

为了澄清,我得到了代码的一般目的 - 它评论得很好,但我不知道如何在BlueMix平台上开始测试。我尝试过添加print语句,但没有任何改变。

要对我尝试做的事情有所了解:只需创建一个用户可以输入字符串的网页,我可以发布一个字符串作为回应。我只是想学习BlueMix,所以我需要在这个平台和Node JS中进行。

2 个答案:

答案 0 :(得分:3)

我建议你看看这个教程:IBM Bluemix DevOps Services - Develop and deploy a Node.js app。开始使用DevOps Services(阅读您的评论,似乎您正在使用它从Web IDE部署到Bluemix)以获得Bluemix上的“Hello World”Node.js Web应用程序非常有用。它还显示了如何应用某些更改并直接在Bluemix上重新推送它们。

回答您的问题,假设您已经部署了入门应用程序(如您的示例所示):

  1. 考虑入门应用程序使用Express.js,这是一个应用程序服务器框架,可以帮助您管理传入的请求。现在让我们假设您要发送字符串“Hello,World!”在HTTP响应中,当服务器收到HTTP GET请求时(假设是/ printhello)。使用express你会有类似的东西:
  2.   

    app.get('/ printhello',function(req,res){     res.send('你好,世界!');   });

    1. 现在您只需要从网页上执行HTTP GET / printhello(例如,入门应用程序的公用文件夹下的索引页)。例如,您可以使用 onclick 事件将请求发送到服务器。您将看到服务器收到它并将响应发送到浏览器,它将显示字符串“Hello,World!”。
    2. 您无法看到“启动服务器”日志的原因是 console.log 在Node.js控制台中打印,而不是在HTTP响应中打印,因此您无法看到来自客户。要查看该输出,您可以使用 cf logs (请参阅this blog post)。
    3. 最后,我邀请您查看Bluemix - Node.js SDK文档,它非常简单明了。

      我希望这可以给你一些起点。

答案 1 :(得分:1)

结帐https://github.com/IBM-Bluemix/bluemix-hello-node。它为节点提供了一个非常好的起点。您需要编写一些代码来使Node适用于Bluemix。最大的是绑定到正确的端口,端口是通过process.env.PORT给出的。我在下面粘贴了一个超级简单的Node.app(其余代码位于上面的GitHub链接中)。

var express = require("express"),
    app = express();

var port = process.env.PORT || 8080;

app.use(express.static(__dirname + '/public'));

app.get("/hello", function (request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"})
    response.end("Hello World!\n");
});

app.listen(port);