node.js專案改進之restful API介面支援
神奇的restful規範
建立restfulAPI模組
這個模組的作用主要是做一些前置操作和指引,並且規範路徑,同時對錯誤進行初步處理
app_need/restfulAPI.js
'use strict';
module.exports = {
APIError: function (code, message) {//編輯資料code和message
this.code = code || 'internal:unknown_error';
this.message = message || '';
},
restify: (pathPrefix) => {//生成前置中介軟體,
pathPrefix = pathPrefix || '/api';//如果不傳資料則預設路徑
return async (ctx, next) => {
//在指定目錄下才生效
if (ctx.request.path.startsWith(pathPrefix)) {
// 繫結rest()方法:
ctx.rest = (data) => {
ctx.response.status = 200;
ctx.response.type = 'application/json' ;
ctx.response.body = data;
}
try {
//正常情況是上面的繫結ctx
await next();
} catch (e) {
// 非正常情況下是下面的繫結ctx
ctx.response.status = 400;
ctx.response.type = 'application/json' ;
ctx.response.body = {
code: e.code || 'internal:unknown_error',
message: e.message || ''
};
}
} else {
await next();
}
};
}
};
在app.js引用
app.js
const rest=require('./app_need/restfulAPI');
app.use(rest.restify('/api'));//使用中介軟體寫法,並且宣告api介面的路徑
編寫api路由
routes/api_user.js
'use strict';
const router = require('koa-router')();
router.prefix('/api/user');
router.get('/:id', function (ctx, next) {//定義讀取
console.log(ctx.params.id);
ctx.rest({ data: 'api_user介面介面get' });
});
router.post('/:id', function (ctx, next) {//定義增加
console.log(ctx.params.id);
ctx.rest({ data: 'api_user介面介面post' });
});
router.put('/:id', function (ctx, next) {//定義更新
console.log(ctx.params.id);
ctx.rest({ data: 'api_user介面介面put' });
});
router.del('/:id', function (ctx, next) {//定義刪除
console.log(ctx.params.id);
ctx.rest({ data: 'api_user介面介面del' });
});
router.patch('/:id', function (ctx, next) {//定義區域性更新
console.log(ctx.params.id);
ctx.rest({ data: 'api_user介面介面patch' });
});
module.exports = router;
最終專案地址:https://github.com/jijuxie/koa2_all.git
相關推薦
node.js專案改進之restful API介面支援
神奇的restful規範 建立restfulAPI模組 這個模組的作用主要是做一些前置操作和指引,並且規範路徑,同時對錯誤進行初步處理 app_need/restfulAPI.js
node.js專案改進之日誌系統
專案自帶的日誌模組koa-logger 專案自帶的日誌系統是很給力的,我們隨便啟動一下下程式,請求一下地址我們就會看到控制檯上出現一堆GET啊啥的是這樣的 logger 超級簡單明瞭,通俗易懂,上面的輸出就是有一個GET請求請求了/目錄,然後處理這
使用Node.js寫一個簡單的api介面
引入Http模組 預設你已經安裝了Node.js Node當中內建了Http模組; 可以使用 var http= require("http"); 複製程式碼 引入http模組; Hello world 用Node.js實現一個HTTP伺服器程式非常簡單。我們實現一個最簡單的Web程式, 它對於所有請
微軟與Node.js的開源之旅
支持 全球 tro 更多 工具和平臺 .cn 我們 images tell 微軟近年來在開源領域可謂是大刀闊斧的前進中,繼2015年微軟與紅帽合作,微軟智能雲Azure與Linux進一步融合等舉措之後,2016年,微軟繼續加大開源之舉,大力推進Node.js的開發和開源社區
Spring mvc之Restful API
clas 處的 ati code ans 指定 reat get 不能 Spring mvc之Restful API 這是一個路徑,http://127.0.0.1:8080/OperationAPI/v0.1/pins/3是API的具體網址。在RESTful架構中,每個網
五個最佳案例帶你解讀Node.js的前後之道
個推 web服務 SegmentFault D-Day Node.js 是什麽?Node.js采用C++語言編寫而成,瀏覽器內核V8做為執行引擎;Node不是JS應用、而是一個Javascript的運行環境。Node保留了前端瀏覽器js的接口,沒有改寫語言本身的任何特性,依舊基於作用域和原型鏈。
Node.js知識點整理之----基礎知識----事件處理機制及事件環機制
node 應用程序 nod eat 回調函數 clas 對象 繼續 知識 在event模塊中,定義了EventEmitter類,所有觸發事件的對象都是繼承了這個類的子類的實例對象。 addListener(event,listener) 對指定事件綁定事件處理函數 on
Node.js知識點整理之----基礎知識----console(控制臺)
輸出流 輸出結果 err 顯示 info 定向 文件中 world 字符 console.log() 用於進行標準輸出流的輸出,即在控制臺中顯示一行字符串 console.log(‘this is a message.‘) 可以將它重寫向輸出到文件中,1代表重定向標
Node.js專案
這裡mongose語言可以參考https://www.jianshu.com/p/2f54b90efe15 首先配置好入口檔案app.js app.js中比較重要的兩個模組是express swig(用於解析模板內容) 檔案解析模板swig的配置
整合swagger2生成Restful Api介面文件 webapi文件描述-swagger
整合swagger2生成Restful Api介面文件 swagger Restful文件生成工具 2017-9-30 官方地址:https://swagger.io/docs/specification/about/ 官方Github:https://github.com/swagger-
CHENGDU3-Restful API 介面規範、django-rest-framework框架
Restful API 介面規範、django-rest-framework框架 問題:什麼是API? 答:API是介面,提供url. 介面有兩個用途: 為別人提供服務,前後端分離。 為什麼使用前後端分離? 答:主要為了資料的解耦,提高開發效率。 如果更新了資料,
node.js初使用之使用express外掛快速搭建登入註冊
首先,介紹些express,express是基於node.js平臺快速,開放,極簡的web開發框架,express 便於我們快速的開發node api介面 得保證安裝了node.js 下載好以後,新建server.js檔案 //引入模組 const express = require('
Spring專案整合apidoc生成api介面文件
一、背景需求 JavaWeb/spring專案寫成的api介面,需要自動生成api文件,甚至需要線上測試介面。考慮實現的方案有swagger,apidoc,spring rest docs。在之後的專案都有一一嘗試,最終還是覺得apidoc的方式比較合適,雖然有一些問題(針對線上
springboot restful api 介面使用
springboot restful api 介面 package com.example.demo; import org.springframework.core.io.FileSystemResource; import org.springframework.htt
阿里雲ECS伺服器部署Node.js專案詳細教程及多網站部署
本文詳細介紹如何部署NodeJS專案到阿里雲ECS上,以及本人在部署過程中所遇到的問題、坑點和解決辦法,可以說是全網最全最詳細的教程了。同時講解了如何申請阿里雲免費SSL證書,以及一臺ECS伺服器配置多網站的Nginx配置方法等。 作者:Kovli 1. 雲伺
Node.js-檔案系統之使用第三方模組操作目錄
7. 第三方模組操作目錄 例子: npm install 包名 安裝 // =======第三方建立目錄包make-dir======== const madkDir = require('mak
Node.js-檔案模組之其他操作
9. 其他操作 (1)絕對路徑 Fs.realpath() Fs.realpathSync() 例子: // 匯入檔案系統 const fs = require('fs'); fs.realpa
swagger 生成 PHP restful API 介面文件
需求: 為客戶端同事寫介面文件的各位後端同學,已經在各種場合回憶了使用自動化文件工具前手寫文件的血淚史. 我的故事卻又不同,因為首先來說,我在公司是 Android 組負責人,屬於上述血淚史中催死人不償命的客戶端陣營. 但血淚史卻是相通的,沒有自動化文件的日子,對介面
中小型的 Node.js 專案目錄
build 構建指令碼 dist 編譯出來的釋出版 docs 文件 examples 示例檔案 src 原始碼 test 測試指令碼 .babelrc Babel 交叉編譯的配置 .eslintrc ESLint 測試配置&n
Openstack-Restful Api 介面測試
目前 OpenStack中訊息傳遞有兩種機制,一種是訊息佇列,另一種就是Restful API。其中Openstack專案的介面遵循REST原則,即使用Restful Api實現OpenStack各Server與Client互動通訊。下面測試一下直接使用Open