我的物联网综合知识之创建服务端1

这一部分,我们先来学习创建服务端的基本知识,下一部分,将给出实际用到的服务端代码及其分析。
我们使用Node.js来创建服务端。

Node.js是运行在服务端的JavaScript,它是一个基于Chrome JavaScript运行时建立的一个平台,是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,执行JavaScript的速度非常快,性能非常好。

Node.js安装

在Ubuntu等linux系统中,安装非常简单。在命令行终端中直接执行下面的安装命令就可以了。
sudo apt-get install nodejs
安装完成后,可以查看一下当前的Node版本:
node -v

Node.js入门程序

我们用Node.js编写一个Hello World程序,执行下面的命令:
nano hello.js
在打开的编辑器中输入下面的代码:

var http=require('http');  //引入http模块
http.createServer(function(request,response){   //创建服务器
   response.writeHead(200,{'Content-Type':'text/plain'}); //发送http头部,http状态值和内容类型
   response.end('Hello World'); //发送响应数据
}).listen(8000);//绑定监听端口
console.log('Server running at http://127.0.0.1:8000');  //终端打印

编辑完成后,按Ctrl+x,按y保存。在命令行终端中,执行:
node hello.js
然后,打开一个浏览器,在地址栏中输入:
http://127.0.0.1:8000
我们可以看到浏览器显示出Hello World。但是,这个程序只是完成了一个可以工作的http服务器,其它什么也没有做。

使用Express模块

Node.js自身虽然提供了很多模块,如http,tcp等,但如果直接使用这些基本的模块来开发应用需要花费大量的时间,因此,我们就要使用一些别的模块来提高开发效率,同时使得代码更简洁。express就是与http对应的第三方核心模块,用于处理http请求。
Express是一个简洁灵活的Node.js Web应用开发框架,它可以帮助我们创建各种Web应用。我们就使用Express作为HTTP协议的基础框架。

安装Express模块

前提是已经正确安装了Node.js。在命令行终端中执行:
npm install express
这里我们用到了npm,下面我们要了解一下有关npm的知识。

关于npm

npm(Node Package Manager)是随同Node.js一同安装的包管理工具,它能解决Node.js代码部署上的很多问题,常见的应用场景如下:

允许用户从NPM服务器上下载别人编写的第三方包到本地用
允许用户从NPM服务器上下载并安装别人编写的命令行程序
允许用户将自己编写的包或命令行程序上传到NPM服务器上

使用下面的命令测试是否成功安装:
npm -v
使用npm命令安装模块:
npm install <Module Name>
这是本地安装,将安装包放在了./node_modules目录中(运行npm命令所在的目录,可通过require引入本地安装的包)
npm install <Module Name> -g
这是全局安装,将安装包放在了/usr/local下或你的node安装目录中,可以直接在命令行中使用。

注意:安装node模块时,如果指定了–save参数,则此模块将被添加到package.json文件中的dependencies列表中。以后发布到网上时,不需要将node_modules文件夹发布,程序会根据package.json文件中的依赖列表中模块名字及版本号,自动从网上下载安装。

其它一些npm相关命令

查看所有全局安装的模块:npm ls -g
卸载模块:npm uninstall <Module Name>
更新模块:npm update <Module Name>
搜索模块:npm search <Module Name>

用npm命令npm ini可以生成package.json文件,包含基本结果。当然,package.json文件也可以自己手动创建,根据实际项目的需要,列出需要依赖的模块,然后通过$npm install命令安装这些模块。

在服务端,我们要创建一些路由,以供客户端访问。

Express路由

路由(routing)是由一个URI(或叫路径)和一个特定的http方法(如GET、PUT)组成。涉及到应用如何响应客户端对某个网站节点的访问。
路由的结构是:app.METHOD(PATH,HANDLER), 其中app是一个express实例,METHOD是某个http请求方式中的一种(如GET、PUT、POST、DELETE),PATH是服务器端的路径,HANDLER是当路由匹配到时执行的函数。
例子:创建一个app.js文件:

var express=require('express');
var app=express();

app.get('/api',function(req,res){
   res.send({led:false});
});
app.post('/api',function(req,res){
   res.send({led:false});
});
app.put('/api',function(req,res){
   res.send({led:false});
});
app.delete('/api',function(req,res){
   res.send({led:false});
});
app.listen(8000);

然后,启动这个http服务,并进行测试:
node app.js
测试方法:
对于GET方法,可以在浏览器地址栏中输http://127.0.0.1:8000/api,回车后看到结果,或者在命令行终端窗口中,输入curl http://127.0.0.1:8081/api
对于POST、PUT和DELETE方法,均可用curl命令来测试。
curl -X POST[PUT][DELETE] -d '{"led":true}' -H "Content-Type:application/json" http://127.0.0.1:8000/api
意思是将一个数据为{led:true}、头为Content-Type:application/json的POST请求发送给服务器,代码中用req.body.led获取传过去的led值。
其中,-X 指定http的请求方式
-d 传送的数据
-H 自定义头信息传递给服务器

我们创建的路由遵循REST API规范。

关于REST API

REST(Representational State Transfer)即表征性状态传输,它是为了描述现代Web如何工作而提出的,它是一种设计风格,不是一种标准。受用户欢迎的网站,绝大多数都采用了这种风格的设计。REST依赖于HTTP协议的功能,使客户端和服务端的交互需要遵守特定的协议(或者说是规范)。如,GET方法用来获取(读取)资源,POST方法用来创建资源,PUT方法用来更新资源,DELETE方法用来删除资源。
设计RESTful API的关键是设计好URI,即指定资源间的关系。资源也就是数据,即可以存储到计算机中的事物。通常要遵循一些默认的规则:使用斜杠(/)来区分资源间的关系等。

另外,需要说明,Node服务端与数据库交互,我们使用mongoose模块。
安装mongoose:
npm install mongoose

以上内容参考了黄峰达的《自己动手设计物联网》相关内容以及网上资源,在此深表感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值