关于
《Nodejs开发加密货币》,是一个加密货币产品的详细开发文档,涉及到使用Nodejs开发产品的方方面面,从前端到后台、从服务器到客户端、从PC到移动、加密解密等各个环节。代码完全开源、文章免费分享。 相关资源见 http://ebookchain.org
QQ交流群: 185046161
前言
上一篇文章,简单介绍了Nodejs,搭建了开发环境,并轻松完成了前端开发。本文,我们更进一步,看看如何实现更加复杂的业务逻辑,如何构建自己的Api。
为什么要用后台?就我们这个统计分析项目(Sacdl
项目)而言,仅前台几个文件已经足够。但是,多数项目业务更加复杂,没有后台办不成事。
另外,前端处理能力有限,特别是web应用,前端代码越简单越好,对于性能和用户体验都有好处。反观我们的Sacdl
项目,显然对于数据的整理更适合在后台处理。
再者,大家知道,Bitcoin或其他竞争币的核心,通常会提供Json格式的Api,我们只要在后台对这些Api进行操作,实现自己的业务逻辑,就能很轻松实现区块链浏览器(如:blockchain.info)、钱包、支付等基本应用。因此,直接学习如何处理第三方Api,对于我们快速上手基于区块链开发应用,是有直接帮助的。
需求
明确要干什么,很重要。
- 从后台读取github.com的Api;
- 处理读取的数据,并发送给前端;
很明显,我们需要重构前端代码。
开发
下文仍以Sacdl
工程为例,引入Express框架,并以此为基础进行开发重构。
基于Nodejs的开发框架很多,而Express是最基础、最出众的一个,很多其他的框架都是基于它构建的,比如严格模仿ruby on rails的sails框架等。
(1)安装Express
cnpm install express --save
说明:安装 Nodejs 模块时,如果指定了 –save 参数,那么此模块将被添加到 package.json 文件中的 dependencies 依赖列表中。以后,就可以通过 npm install 命令自动安装依赖列表中所列出的所有模块。
(2)创建简单应用
进入工程目录,新建文件 app.js
,输入如下内容:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
然后,运行下面的命令:
$ node app.js
最后,用浏览器打开 http://localhost:3000/ ,可以看到 hello world!
输出。
这官网的例子,是一个完整的web应用。也可以理解为一个服务器软件,不过是仅仅在3000端口,提供了一个简单的web服务。
如果,你对上篇gulp
的管道概念有了一定认识,你也可以想象成,我们已经搭建了一条从后台到前端的管道。剩下的工作,就是给这条管道添加各种处理装置,让水流(数据流)实现我们的要求。关于流的概念,我们会在下一篇再次总结一下。
(3)使用模板引擎
上面,我们直接将hello world发送给了浏览器,如果是html文件该怎么做呢?Nodejs没有直接渲染模板的功能,需要用到第三方插件,如:jade,ejs,hbs等
这里,咱们用ejs
,它就像java的jsp,rails的rhtml,直接在html文件里嵌入代码,简单好用。下面,安装它:
$ cnpm install