Node.js學(xué)習(xí)筆記6——RESTful API

REST: Representational State Transfer

Create RESTful

first of all, create a json data resource: 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
   }
}

Then we create RESTful APIs:

RESTful APIs

List Users

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

app.get('/listUsers', function (req, res) {
    fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
        console.log( data );
        res.end( data );
    });
})

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

    var host = server.address().address
    var port = server.address().port

    console.log("應(yīng)用實例,訪問地址為 http://%s:%s", host, port)

})

Then you can get user list from http://127.0.0.1:8081/listUsers

Add User

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

app.get('/listUsers', function (req, res) {
    fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
        console.log( data );
        res.end( data );
    });
})

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

  var user = req.query.user
  var name = req.query.name
  var pass = req.query.password
  var profession = req.query.profession
  var ids = req.query.id

  var userToAdd = new Object()
  userToAdd[user] = {
      "name" : name,
      "password" : pass,
      "profession" : profession,
      "id" : ids
  }

  console.log('add info ' + JSON.stringify(userToAdd))
  res.end( JSON.stringify(userToAdd));

})

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

  var host = server.address().address
  var port = server.address().port
  console.log("應(yīng)用實例,訪問地址為 http://%s:%s", host, port)

})

Then you can add user using http://localhost:8081/addUser?user=user4&name=realank&password=1233456&profession=geek&id=4

Get User By ID

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

app.get('/:id', function (req, res) {
   // 首先我們讀取已存在的用戶
   fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
       data = JSON.parse( data );
       var user = data["user" + req.params.id] 
       console.log( user );
       res.end( JSON.stringify(user));
   });
})

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

  var host = server.address().address
  var port = server.address().port
  console.log("應(yīng)用實例,訪問地址為 http://%s:%s", host, port)

})

Then you can get specific user info using http://localhost:8081/2

Delete User by ID

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

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

   // First read existing users.
   fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
       data = JSON.parse( data );
       delete data["user" + req.params.id];
       
       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("應(yīng)用實例,訪問地址為 http://%s:%s", host, port)

})

Then you can delete specific user by http://127.0.0.1:8081/deleteUser/2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容