什么是 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 来架设应用服务器