Node.js 之REST API

參考link
[url]http://www.runoob.com/nodejs/nodejs-restful-api.html[/url]


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

//
// --Coding Standard
// 1 Enforce Callback Error Handling (handle-callback-err)
// https://eslint.org/docs/rules/handle-callback-err.html
//
// 2 Disallow string concatenation when using __dirname and __filename (no-path-concat)
// https://eslint.org/docs/rules/no-path-concat#disallow-string-concatenation-when-using-__dirname-and-__filename-no-path-concat

// Include All variables
// //
var express = require('express')
var app = express()
var fs = require('fs')
var moment = require('moment')
var ROOT_PATH = __dirname
var JSON_FILE = 'users.json'
var FILE_ECODE_TYPE = 'utf8'
var fullJsonFilePath = ROOT_PATH + '/' + JSON_FILE

// Define All Basic Functions
// ///
function ListUserActionFunc (req, res) {
function GetFromJSONFunc (err, data) {
if (err) {
console.log(err.stack)
}

console.log('[%s]', moment().format('YYYY-MM-DD HH:mm:ss'))
console.log(data)
res.end(data)
}

fs.readFile(fullJsonFilePath, FILE_ECODE_TYPE, GetFromJSONFunc)
}

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

function AddUserActionFunc (req, res) {
function GetFromJSONFunc (err, data) {
if (err) {
console.log(err.stack)
}

data = JSON.parse(data)
data['user4'] = addUser['user4']
console.log('[%s]', moment().format('YYYY-MM-DD HH:mm:ss'))
console.log(data)
res.end(JSON.stringify(data))
}

// 读取已存在的数据
fs.readFile(fullJsonFilePath, FILE_ECODE_TYPE, GetFromJSONFunc)
}

function DeleteUserFunc (req, res) {
console.log('hello DeleteUserFunc')
function GetFromJSONFunc (err, data) {
if (err) {
console.log(err.stack)
}

var id = 2
console.log('hello GetFromJSONFunc')
data = JSON.parse(data)
delete data['user' + id]
console.log('[%s]', moment().format('YYYY-MM-DD HH:mm:ss'))
console.log(data)
res.end(JSON.stringify(data))
}

// First read existing users.
fs.readFile(fullJsonFilePath, FILE_ECODE_TYPE, GetFromJSONFunc)
}

//
// ///
function GetIdFunc (req, res) {
function GetFromJSONFunc (err, data) {
if (err) {
console.log(err.stack)
}

data = JSON.parse(data)
var user = data['user' + req.params.id]
console.log('[%s]', moment().format('YYYY-MM-DD HH:mm:ss'))
console.log(user)
res.end(JSON.stringify(user))
}

// 首先我们读取已存在的用户
fs.readFile(fullJsonFilePath, FILE_ECODE_TYPE, GetFromJSONFunc)
}

function SocketListenerFunc () {
var host = server.address().address
var port = server.address().port

console.log('Please visit http://%s:%s', host, port)
}

// Main Service Code
// //
app.get('/listUsers', ListUserActionFunc)
app.get('/addUser', AddUserActionFunc)
app.get('/deleteUser', DeleteUserFunc)
app.get('/:id', GetIdFunc)

var server = app.listen(8081, SocketListenerFunc)

// Test URL
// http://127.0.0.1:8081/listUsers
// http://127.0.0.1:8081/addUser
// http://127.0.0.1:8081/2
// http://127.0.0.1:8081/deleteUser

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
REST API 是一种架构风格,用于开发网络服务。Node.js 是一个基于 JavaScript 运行时的开发平台,可以用于构建高效且可扩展的服务器端应用程序。因此,使用 Node.js 来开发 REST API 是一种常见的选择。 借助 Node.js 的特性,我们可以轻松地构建 REST API。使用 Node.js 的异步非阻塞 I/O 模型,可以提供高度并发的能力,使服务器能够处理大量的请求。此外,Node.js 的事件驱动架构也使得处理请求变得更加高效。 在使用 Node.js 开发 REST API 时,我们可以使用许多流行的框架和库,例如 Express、Koa 或 Hapi。这些框架提供了许多便捷的功能和中间件,帮助我们搭建和组织 REST API 的路由和业务逻辑。 Node.js 还可以与许多数据库进行集成,如 MongoDB、MySQL、PostgreSQL 等。这使得我们可以轻松地与数据库交互,存储和检索数据。同时,我们还可以使用其他第三方库和工具来处理认证和授权、API 文档生成、日志记录等常见的开发任务。 通过结合 Node.jsREST API,我们能够构建出灵活、可扩展且高性能的服务器端应用程序。这种架构模式使得不同的客户端可以通过 HTTP 协议与服务器进行通信,从而实现前后端的分离和独立开发。并且,REST API 的设计原则和规范使得不同的团队能够更好地协作开发,提高开发效率。 总而言之,使用 Node.js 来开发 REST API 是一种强大而灵活的方式。借助 Node.js 的优势和丰富的生态系统,我们可以轻松构建出高性能、可扩展且易于维护的 REST API

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值