參考link
http://www.runoob.com/nodejs/nodejs-restful-api.html
// 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
分享到:
相关推荐
Node.js英文书籍2015出版共9本,打包成一个档,以节省大家的时间。 Full Stack Javascript - Learn...Pro REST API Development with Node.js (Apress 2015).pdf RESTful Web API Design with Node.js (Packt 2015).pdf
Node.js,一个基于Chrome V8引擎的JavaScript运行环境,以其异步非阻塞I/O和高性能特性,成为开发REST API的理想选择。Express,作为Node.js中最受欢迎的Web应用程序框架,简化了处理HTTP请求和响应的过程,使得构建...
`rest.js` 是一个专门为 Node.js 设计的 GitHub REST API 客户端库,它简化了与 GitHub API 的交互,使得开发者能够更加便捷地进行版本控制、项目管理、仓库操作等任务。 在描述中提到的 `rest.js`,是针对 ...
Pro REST API Development with Node.js shines light into that black hole of modules for the developers trying to create an API. Understand REST API development with Node.js using this book today.
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让JavaScript得以在服务器端运行,打破了JavaScript只能在浏览器中使用的限制。Node.js采用单线程、事件驱动的非阻塞I/O模型,使其在高并发场景下表现出色,...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它让开发者能够在服务器端使用JavaScript进行编程。这个技术的出现,使得前端开发者能够轻松地实现全栈式开发,将前后端技能融会贯通。"Node.js-实现node.js来...
supersamples, node.js REST API的文档和示例 node.js rest式API的文档和示例 supersamples 是一个支持 Supertest插件,能够生成可靠且易于使用的API示例的 mocha 插件报告程序。 简而言之:在测试套件中定义具体
标题《REST API Development with Node.js》表明了文档的主题是关于如何使用Node.js技术开发REST风格的应用程序接口(API)。REST(Representational State Transfer)是一种软件架构风格,由Roy Fielding于2000年在...
使用node.js技术开发RestFul API
一个REST API用于使用Node.js headless Chrome和Cheerio来爬取动态网站”指的是一项技术实现,它利用Node.js作为后端服务器,通过Headless Chrome(无头Chrome浏览器)和Cheerio库来抓取那些需要JavaScript渲染才能...
PGRestAPI, 用于PostGres空间实体的node.js REST API AKA PGRestAPI ( 一个。k 。Chubbs空间服务器) 概述用于PostgreSQL空间表的Node.js REST API 。PGRestAPI的几个关键用法:从PostGIS或者shapefile快速创建 M
**Node.JS-REST-Starter** 是一个专为加速基于Node.js的RESTful API开发而设计的启动模板。这个项目采用了一系列最佳实践,为开发者提供了一个起点,让他们能够快速搭建和构建高效、可扩展的后端服务。在这个项目中...
标题 "Node.js-snapkit通过命令行或RESTAPI对网站进行截屏" 指出的是一个使用Node.js开发的工具——Snapkit,它能够帮助用户便捷地对网站进行截图。Node.js是一种流行的JavaScript运行环境,它允许开发者在服务器端...
标题中的“Node.js-为你的RESTAPI创造一个Node.js库只需要一个设置JSON对象”表明了本文将探讨如何使用Node.js创建一个针对RESTful API的库,这个库的配置过程简化到了只需要一个JSON对象。在Node.js中,由于其非...
Node.js-mocker-api是专为开发人员设计的一个实用工具,旨在帮助他们在没有实际REST API服务器的情况下,快速构建和测试基于REST API的应用程序。这个库利用了Node.js的强大功能,允许开发者模拟各种HTTP响应,包括...
Node.js(REST API)+ Vue.js / Nuxt.js(前端/后端)+ MySQL样板 这是一个样板项目。 该项目包含Node.js REST API和Vue.js使用BootstrapVue开发的前端/后端。 API Node.js,Express,Webpack,Express Validator,...
在本项目中,"Node.js-node.js待办事项列表RESTfulApi"是一个使用Node.js构建的Web应用程序,它实现了一个待办事项(Todo)管理的RESTful API。RESTful API是一种设计模式,用于构建可扩展、高效且易于理解的网络...
Chapter 8: Building Node.js REST API Servers with Express.js and Hapi Chapter 9: Real-Time Apps with WebSocket, Socket.IO, and DerbyJS Chapter 10: Getting Node.js Apps Production Ready Chapter 11: ...