Java开发者结合Node.js编程入门教程(3)
在我们的项目中,我们想要加载所有名称为Pabst的啤酒列表。如果你不熟悉啤酒行业,你可以试下Pabst Brewing公司生产的美式淡啤。这些啤酒上面带有蓝绶带和柯尔特{敏感词}图案,他们包含所有的麦芽糖饮料种类。

首先你需要下载一个json文件,里面包含需要返回的所有数据。你可以用下面的URL来实现这点:
https://dl.dropboxusercontent.com/u/72466829/beers.json
下载结束后,使用mongoimport命令把它导入到数据库中,命令如下:
$ mongoimport --jsonArray -d yourDBName -c beers --type json --file /tmp/beers.json -h yourMongoHost --port yourMongoPort -u yourMongoUsername -p yourMongoPassword
你可以看到如下结果:
connected to: 127.0.0.1:27017 Tue Jun 10 20:09:55.436 check 9 24 Tue Jun 10 20:09:55.437 imported 24 objects
第5步: 创建Beer模型对象
我们已经创建了一个数据库连接类并且已经把啤酒信息载入到MongoDB数据库里了,是时候创建一个模型对象来控制我们的啤酒信息了。创建一个新文件,名为Beer.java并把它放到/src/main/java/com/strongloop/data目录下。创建好该文件后,在其中添加如下代码:
package com.strongloop.data;
public class Beer {
private String id;
private String name;
private String description;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
注意: 提供好的JSON文件中包含了更多我们将会使用到的信息,所以可以找出来看看,并向其中添加一些额外的功能来拓宽你的学习经验。
第6步: 创建REST服务
猜猜看该干什么了?不错,我们终于准备好要创建基于REST的web服务了,它使我们可以获取到上一个步骤当中载入进来的啤酒信息。为此,我们需要创建一个新的名为BeerWS.java的文件,并把它放到/src/main/java/com/strongloop/webservice目录下。创建好之后,添加下列代码:
package com.strongloop.webservice;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import com.strongloop.data.DBConnection;
import com.strongloop.data.Beer;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
@RequestScoped
@Path("/beers")
public class BeerWS {
@Inject
private DBConnection dbConnection;
private DBCollection getBeerCollection() {
DB db = dbConnection.getDB();
DBCollection beerCollection = db.getCollection("beers");
return beerCollection;
}
private Beer populateBeerInformation(DBObject dataValue) {
Beer theBeer = new Beer();
theBeer.setName(dataValue.get("name"));
theBeer.setDescription(dataValue.get("name"));
theBeer.setId(dataValue.get("_id").toString());
return theBeer;
}
// 获取所有啤酒
@GET()
@Produces("application/json")
public List<Beer> getAllBeers() {
ArrayList<Beer> allBeersList = new ArrayList<Beer>();
DBCollection beers = this.getBeerCollection();
DBCursor cursor = beers.find();
try {
while (cursor.hasNext()) {
allBeersList.add(this.populateBeerInformation(cursor.next()));
}
} finally {
cursor.close();
}
return allBeersList;
}
}
第7步: 浏览着啤酒信息傻乐
喔,搞定。我们已经写好了一个REST服务,可以从数据库中获取所有的啤酒信息。现在把你的代码部署到你的应用服务器吧, 在浏览器中打开下列地址看看它是否工作正常:
http://yourserverlocation/ws/beers
如果所有东西都正常,你将会看到所有的啤酒信息列表,如下图所示:

创建 Node 应用
如果你按照上面的步骤使用java进行编程,你会意识到使用javaEE创建应用尽管进展很快,但是创建一个类似REST服务的简单应用还是很麻烦。不要误解,我仍然很喜欢用javaEE,但是发现对于很多场景,比如创建返回json数据的REST服务,Node更适用。接下来,我们将要使用StrongLoop的LoopBack API创建一个简单的web服务。另外,我会向你展示如何在苹果OSX系统上安装Node。
步骤1:安装 Node
- 上一篇:Java数组操作的10大方法
- 下一篇:Java List双击事件实现方法





