Node.js RESTful API-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

Node.js RESTful API

简介: Node.js RESTful API 什么是 REST? REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。

Node.js RESTful API

什么是 REST?

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。

表述性状态转移是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。需要注意的是,REST是设计风格而不是标准。

HTTP 方法

以下为 REST 基本架构的四个方法

  • GET - 用于获取数据。

  • PUT - 用于更新或添加数据。

  • DELETE - 用于删除数据。

  • POST - 用于添加数据。

创建 RESTful

首先,创建一个 json 数据资源文件 users.json,内容如下:

{
   "user1" : {
      "name" : "mahesh",
      "password" : "password1",
      "profession" : "teacher",
      "id": 1
   },
   "user2" : {
      "name" : "suresh",
      "password" : "password2",
      "profession" : "librarian",
      "id": 2
   },
   "user3" : {
      "name" : "ramesh",
      "password" : "password3",
      "profession" : "clerk",
      "id": 3
   }
}

  

 

获取用户列表:

以下代码,我们创建了 RESTful API listUsers,用于读取用户的信息列表, server.js 文件代码如下所示:

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

app.get('/listUsers',listUsers);
var server=app.listen(8081,onRequest);

//user列表
function listUsers(rep,res){
	fs.readFile(__dirname+'/'+'users.json','utf-8',function(err,data){
		console.log(data);
		res.end(data);
	});
}

//服务器响应
function onRequest(){
	var host=server.address().address;
	var port=server.address().port;
	console.log('应用实例,访问地址为 http://%s:%s',host,port);
}

  

接下来执行以下命令:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

在浏览器中访问 http://127.0.0.1:8081/listUsers,结果如下所示:

{
   "user1" : {
      "name" : "mahesh",
      "password" : "password1",
      "profession" : "teacher",
      "id": 1
   },
   "user2" : {
      "name" : "suresh",
      "password" : "password2",
      "profession" : "librarian",
      "id": 2
   },
   "user3" : {
      "name" : "ramesh",
      "password" : "password3",
      "profession" : "clerk",
      "id": 3
   }
}

  

添加用户

以下代码,我们创建了 RESTful API addUser, 用于添加新的用户数据,server.js 文件代码如下所示:

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

//添加新的用户数据
var user={
	"user4":{
		"name":"mohit",
		"password":"password4",
		"prefession":"teacher",
		"id":4		
	}
}

app.get('/addUser',addUser);
var server=app.listen(8081,onRequest);

function addUser(req,res){
	//读取已经存在的数据
	fs.readFile(__dirname+'/'+'users.json','utf-8',function(err,data){
		data=JSON.parse(data);
		data["user4"]=user["user4"];
		console.log(data);
		res.end(JSON.stringify(data));
	});
}

function onRequest(){
	var host=server.address().address;
	var port=server.address().port;
	console.log('应用实例,访问地址 http://%s:%s',host,port);
}

  

接下来执行以下命令:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

在浏览器中访问 http://127.0.0.1:8081/addUser,结果如下所示:

{ user1:
   { name: 'mahesh',
     password: 'password1',
     profession: 'teacher',
     id: 1 },
  user2:
   { name: 'suresh',
     password: 'password2',
     profession: 'librarian',
     id: 2 },
  user3:
   { name: 'ramesh',
     password: 'password3',
     profession: 'clerk',
     id: 3 },
  user4:
   { name: 'mohit',
     password: 'password4',
     profession: 'teacher',
     id: 4 } 
}

  

显示用户详情

以下代码,我们创建了 RESTful API :id(用户id), 用于读取指定用户的详细信息,server.js 文件代码如下所示:

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

app.get('/:id',getById);
var server=app.listen(8081,onRequest);


//根据id获取
function getById(req,res){
	//首先读取json
	fs.readFile(__dirname+'/'+'users.json','utf-8',function(err,data){
		data=JSON.parse(data);
		var user=data["user"+req.params.id];
		console.log(user);
		res.end(JSON.stringify(user));
	});
}


//服务器操作
function onRequest(){
	var host=server.address().address;
	var port=server.address().port;
	console.log('应用实例,访问地址 http://%s:%s',host,port);
}

  

接下来执行以下命令:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

在浏览器中访问 http://127.0.0.1:8081/2,结果如下所示:

{
   "name":"suresh",
   "password":"password2",
   "profession":"librarian",
   "id":2
}

  

删除用户

以下代码,我们创建了 RESTful API deleteUser, 用于删除指定用户的详细信息,以下实例中,用户 id 为 2,server.js 文件代码如下所示:

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

var id = 2;

app.get('/deleteUser', function (req, res) {

   // First read existing users.
   fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
       data = JSON.parse( data );
       delete data["user" + 2];
       
       console.log( data );
       res.end( JSON.stringify(data));
   });
})

var server = app.listen(8081, function () {

  var host = server.address().address
  var port = server.address().port
  console.log("应用实例,访问地址为 http://%s:%s", host, port)

})

  

接下来执行以下命令:

$ node server.js 
应用实例,访问地址为 http://0.0.0.0:8081

在浏览器中访问 http://127.0.0.1:8081/deleteUser,结果如下所示:

{ user1:
   { name: 'mahesh',
     password: 'password1',
     profession: 'teacher',
     id: 1 },
  user3:
   { name: 'ramesh',
     password: 'password3',
     profession: 'clerk',
     id: 3 } 
}

  

摘自:http://www.runoob.com/nodejs/nodejs-restful-api.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章