设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

Java开发者如何入门Node.js

2014-8-25 11:45| 发布者: joejoe0332| 查看: 4914| 评论: 0|原作者: gones945, daxiang, lwei, 陈昊LipsChan, wwwjjj, 0x0bject|来自: oschina

摘要: 首先, 我必须得承认,作为一个有着十多年开发经验的java开发者,我已经形成了解决绝大部分问题的固有套路,尽管它们很多时候显得笨重和繁琐。 比如说如果要读取一个文件,那应该就是初始化一个BufferedReader 实例 ...


步骤3:创建应用程序

  使用LoopBack API创建一个应用程序很简单。 打开你的window命令行窗口,使用下面的命令来创建一个新的应用程序restexample.

1
$ slc loopback


  接下来它会提示输入项目根路径的名称。 在这个示例中,使用restexample。 接下来它会提示输入应用程序名称。 使用默认值restexample。


  slc命令现在已经创建一个名称为restexample的LoopBack应用程序,并且已经配置了这个应用程序。 如果再次执行上面的命令,仍然使用restexample命名,LoopBack会创建一个新的目录。 可以使用cd命令来修改应用程序的根路径。

1
cd restexample


  现在我们已经创建完一个应用程序,接下来我们将MongoDB配置为程序的数据源。



步骤4:定义数据源

  为了连通MongoDB,我们需要给应用程序增加一个数据源,运行以下命令即可:

$ slc loopback:datasource

在弹出的提示符下,可以输入任意自定义的数据源名称,这里选择myMongo

[?] Enter the data-source name: myMongo

这样我们就将后端的数据源定义附加到由StrongLoop支持的真实连接器上面.这里我们从列表选择MongoDB连接器.

[?] Select the connector for myMongo:
PostgreSQL (supported by StrongLoop)
Oracle (supported by StrongLoop)
Microsoft SQL (supported by StrongLoop)
MongoDB (supported by StrongLoop)
SOAP webservices (supported by StrongLoop)
REST services (supported by StrongLoop)
Neo4j (provided by community)
(Move up and down to reveal more choices)


步骤5:指向真实的数据源

  为了连通MongoDB,我们需要指向真实际的MongoDB实例.LoopBack在datasource.json文件中定义了所有的数据源配置信息.这个文件位于应用程序的root/server目录.打开这个文件,按照如下的方式,为MongoDB增加一个数据源:

1
2
3
4
5
6
7
8
9
10
11
12
{
  
 "db": {
   "name""db",
   "connector""memory"
 },
 "myMongo": {
   "name""myMongo",
   "connector""mongodb"
   "url""mongodb://localhost:27017/restexample"
 }
}

  注意:要保证为MongoDB数据库提供正确的 连接 URL.针对这个例子,我创建了一个名为 restexample 的数据库,它用来作为数据源.


步骤6:导入数据到MongoDB(mmmmm 啤酒)

  就像本文Java部分说到的那样,我们需要加载数据集到MongoDB数据库中.如果你已经按照本文说到的方法完成了这个步骤,然后打算使用同一个数据库,你可以忽略步骤6,直接跳到步骤7.


  首先,你需要下载一个包含所有要返回信息的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


  你应该可以看到如下的结果:

connected to: 127.6.189.2:27017
Tue Jun 10 20:09:55.436 check 9 24
Tue Jun 10 20:09:55.437 imported 24 objects


步骤7:创造我们自己的啤酒模型

  在Java世界里,由此可以想到对象模型.它代表这一个对象,只是在这里,这个对象是啤酒.LoopBack通过命令行,提供了一种创建模型对象的简便方式.打开终端窗口,进入到工程文件夹,输入如下命令:

$ slc loopback:model

这将会开启一个交互式的会话来定义模型.首先需要输入的是模型名称,这里输入"beer".接下来会提示,这个模型应该附加到的数据源,这里选择之前创建的myMongo数据源.

[?] Enter the model name: beer
[?] Select the data-source to attach beer to:
db (memory)
myMongo (mongodb)

接下来提示,是否通过REST将此API暴露出来.当然,这里希望这样.

[?] Expose beer via the REST API? Yes

最后,为模型选择网络复数名,这里模型名为beer,所以复数为beers(默认).敲击Enter键接受默认值.

[?] Custom plural form (used to build REST URL):

接下来会提示定义模型属性.对这个示例程序,我们关注名称和对啤酒的描述.

Enter an empty property name when done.
[?] Property name: name

只要敲击了Enter,就会提示输入各个指定属性的数据类型.第一个项是name,这里选择字符串类型.选择字符串类型,然后敲击Enter.

[?] Property type: (Use arrow keys)
string
number
boolean
object
array
date
buffer
geopoint
(other)

接下来,按照同样的方式创建description属性,接着会要求输入数据类型.它同样是一个字符串类型,选择字符串选项,然后敲击Enter.

Let's add another beer property.
Enter an empty property name when done.
[?] Property name: description
invoke loopback:property
[?] Property type: string
[?] Required? Yes


  祝贺!你已经使用LoopBack结合Node完成了模型对象的创建.如果想查看在这个过程中真正创建了什么,可以打开位于应用程序root/common/models目录的beer.json文件,滚动到这个文件的最后,将会看到如下模型:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
 "name""beer",
 "base""PersistedModel",
 "properties": {
   "name": {
     "type""string",
     "required"true
   },
   "description": {
     "type""string",
     "required"true
   }
 },
 "validations": [],
 "relations": {},
 "acls": [],
 "methods": []
}


  这里可以看到,我们创建了一个模型,同时,name和description属性已经赋予了这个模型.


在/server/model-config.js文件中,可以注意到,文件中包含一些额外的字段,包括public和datasource.其中public域指定我们希望通过一个REST网络服务将此模型暴露给外部.datasource域则指定这个模型的CRUD操作将会用到的数据源.

1
2
3
4
 "beer": {
    "dataSource""myMongo",
    "public"true
  }


步骤8:沉浸在看到beers的喜悦中

  祝贺!你已经创建了第一个Node.js应用程序,其中包含可以获取beer信息的REST网络服务.最后,我们需要做的就是部署这个应用程序.


  庆幸的是,部署是已经很容易的事情.可以通过在应用程序根目录执行如下命令来完成:

$ slc run

只要应用程序一运行,就可以通过浏览器转到如下的URL来确认部署是否成功:

http://0.0.0.0:3000/api/beers

相当酷,是不是?

LoopBack同时也包含了一个允许查看应用程序所有可用服务的页面,包括Beer模型和我们创建的REST服务,将浏览器指向如下的URL即可查看:

http://0.0.0.0:3000/explorer

页面加载成功后,你会看到下面的界面,我们已经创建了beers节点作为博客的一部分,我把/beers端点进行高亮显示了:

你可以点击/beers来展开可供调用的API,你可以操作并测试一下,如下图所示:


结论

  在这篇博文中,我展示了如何使用java EE 去创建一个rest服务,这个服务能够返回Pabst啤酒公司的啤酒产品清单数据。 之后我又使用node.js以及基于node.js的loopback框架使用很少的代码实现了相同功能的rest服务。 最重要的是,LoopBack API  还对beer实体的增删查改提供了默认的实现,使得我们不用再写一行代码就得到了一个具有完整增删查改功能的rest服务。


下面的清单对博文中涉及的javaEE和node.js各自特性进行一个对比:

Feature

Java EE

Node.js

完善的IDE支持

Yes, 多种IDE供选择,包括 Eclipse, Sublime and Idea

Yes,  多种IDE供选择, Visual Studio, Eclipse, Sublime

依赖管理

Maven

NPM

有企业级项目采用

Yes

Yes

庞大的组件生态系统

Yes

Yes

需要 JVM

Yes

No

通用开发框架

Spring, JEE

Express

数据库支持

Yes

Yes

ORM 框架

Yes

Yes

测试框架

Yes

Yes


接下来的内容?

  •  即将发布的Node v0.12 将带来至少8个激动人心的新特性,它们会是什么呢?访问 “What’s New in Node.js v0.12” 页面了解更多.

  • 对Node相关的培训和认证感兴趣? StrongLoop 公司提供各种服务满足您的需求。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部