每天学习一点点,成功增加一大步

NodeJS基础:通过 RESTful API 来架设应用服务器

NodsJS zhanghui 1991℃

什么是 REST?这里就不多写了,百度一下基本上就都有了。现在笔录的是如何通过 nodeJS 来架设一个 RESTful Web Services。

首先它要依赖以下几个模块,因此在应用模块的头部就要有它们的引入。

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

它们三个中除了 express 不是 nodejs 默认自带外,其他两个都是。所以就要在你的项目中要安装 express 这个模块,以下是通过 nodeJS 的 npm 来安装 express。

 npm install express.

然后创建一个 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
   }
}

最后呈现下应用服务的列表读取、单个查询、添加与删除这几个方面的示例。

列表读取

var app = express();

app.get('/listUsers', function(req, res) {
    fs.readFile(path.join(__dirname, 'users.json'), 'utf8', function(err, data) {
        if (err) {
            return console.error(err);
        }
        console.log(data);
        res.end(data);
    });
});

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

单个查询

var app = express();

app.get('/:id', function(req, res) {
    fs.readFile(path.join(__dirname, 'users.json'), 'utf8', function(err, data) {
        if (err) {
            return console.error(err);
        }
        data = JSON.parse(data);
        var user = data["user" + req.params.id];
        console.log(user);
        res.end(JSON.stringify(user));
    });
});

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

添加

 var app = express();

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

app.get('/listUsers', function(req, res) {
    fs.readFile(path.join(__dirname, 'users.json'), 'utf8', function(err, data) {
        if (err) {
            return console.error(err);
        }
        data = JSON.parse(data);
        data["user4"] = user["user4"];
        console.log(data);
        res.end(JSON.stringify(data));
    });
});

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

删除

 var app = express();

var id = 2;

app.get('/deleteUser', function(req, res) {
    fs.readFile(path.join(__dirname, 'users.json'), 'utf8', function(err, data){
        if (err) {
            return console.error(err);
        }
        data = JSON.parse(data);
        delete data['user' + id];
        console.log(data);
        res.end(JSON.stringify(data));
    });
});

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

转载请注明:隨習筆記 » NodeJS基础:通过 RESTful API 来架设应用服务器

喜欢 (1)