作为一位软件应用程序开发人员,我尝试过解决以下问题:如何获得来自用户的直接反馈,尤其是在线用户。举例而言,迅速了解 Twitter 用户对一个应用程序、产品发布、活动或当前事件的反应将会很有帮助。反应是正面、负面还是中立的?
由于我希望应用程序能够快速判定 Twitter 上的公众情绪,所以我希望它能够快速开发,连接一个 Twitter Web 服务,拥有一个简单的移动接口,并快速分析海量数据。
我选择使用 JavaScript 和流行的 Node.js 运行时构建 PaaS 应用程序,将它构建为 PaaS 应用程序。该应用程序使用了 Cloud Foundry 和 Heroku 等 PaaS 环境支持的服务组成编程模型。我选定在 JazzHub 上开发此应用程序。这为我提供了一个地方来发布该应用程序,还提供了一个基于浏览器的不错的 IDE 来开发代码。
构建一个类似应用程序的需求
基本熟悉 Node.js 和 Node.js 开发环境。 以下 Node.js 模块: Express 框架:使得构建 Node.js Web 应用程序变得很
轻松。 sentiment 模块:对某个字符串执行简单的情绪分析。 ntwitter 模块:提供一个简单的 Twitter 接口,包含对 Twitter 的 Stream API 的支持。
以下步骤描述了最基本的方法。
第 1 步. 构建一个 Express 应用程序
运行 node 和 npm 命令:
图 1. 确认 Node.js 和 NPM 已经安装到您系统上
创建最简单的 Node.js Express 应用程序:Hello Node.js(请参见 清单 1)。
在一个新目录中,创建 app.js 文件,这是 Node.js 应用程序的主要文件。告诉 Node.js 需要 Express 模块,然后创建 Express 应用程序。注册一条路由,以便通过 清单 1 中所示的匿名函数处理针对 /hello 的请求。/hello 的处理函数使用 Express 帮助器发送一条简单的文本响应。send 方法处理默认的内容类型和长度等细节。在使用 Express 时,我们可以忽略基础 HTTP 对话的一些细节。
清单 1. Hello Node.js
var port = (process.env.VCAP_APP_PORT || 3000);var express = require("express");var app = express();app.get('/hello',
function(req, res) { res.send("Hello world.");});app.listen(port);console.log("Server listening on port " + port);
备注:该程序还可以更简单,而且一些附加的代码行可以让它在 CloudFoundry 运行时中运行。在 CloudFoundry 中,该应用程序将重新定位到不同的端口(该端口可从环境中发现)。
为 Node.js 提供关于该应用程序的一些附加信息,如 清单 2 中所示。
创建一个 package.json 文件,告诉该应用程序将使用 Express 模块,然后将该应用程序命名为 “Simple Sentiment Analysis App”。因为这个应用程序不会发布到 NPM 注册表,所以您可将它标记为私有。最后,声明该应用程序依赖于 Express 模块的 3.x 版。
清单 2. package.json
package.json for Hello Node{ "name": "SimpleSentimentAnalysisApp", "description": "Simple Sentiment Analysis App", "version": "0.9.0", "private": true, "dependencies": { "express": "3.x" }}