作為一個好的Restfull Api不僅在於service url的語意,可讀性,冪等,正交,作為http狀態碼也很重要,一個好的Http Status Code給使用者一個很好的回應,例如200表示正常成功,201表示創建成功,409衝突,404資源不存在等等。所以在做一個基於node.js mongodb angularjs的demo時發現node.js express沒有提供相應的輔助類,但是本人不喜歡將201,404這類毫無語言層次語義的東西到處充斥著,所以最後決定自己寫一個,但是同時本人也很懶,不喜歡做重複的苦力活,怎麼辦?那就從我最熟悉的c#中HttpStatusCode枚舉中copy出來吧,最後為了簡單在mac上所以採用了利用node.js去解析msdn關於httpstatuscode的文檔生成node.js的輔助類別。
程式碼很簡單:
var http = require('http');
var fs = require('fs');
var $ = require('jquery');
var output = "httpStatusCode/index.js";
(function(){
String.format = function() {
var s = arguments[0];
for ( var i = 0; i
var reg = new RegExp("\{" i "\}", "gm");
s = s.replace(reg, arguments[i 1]);
}
return s;
};
};
var options = {
host:'msdn.microsoft.com',
port:80,
path:'/zh-cn/library/system .net.httpstatuscode.aspx'
};
http.get(options,function (response) {
var html = "";
response.on("data",function (chunk) {
html = chunk;
}).on("end", function () {
handler(html);
}).on('error', function (e) {
console.log("Got error: " e.message );
});
function getHttpStatusCode(htmlString) {
var $doc = $(html(html);
var rows = $doc.find("table#memberList tr:gt(0)");
var status = {};
rows.each(function(i, row){
status[$(row).find("td:eq(1)").text()] =
parseInt($(row).find("td :eq(2)").text().match(/d /).toString());
});
return status;
};
function generateCode(status){
var code = "";
code = "exports.httpStatusCode = " J🎜>
code = "exports.httpStatusCode = " J🎜 ";";
return code;
};
function writeFile(code){
.writef , code, function(err) {
if(err) {
console.log(err);
} else {
console.log🎜>} else {
console.log ("The file was saved " output "!");
}
});
};
};
var status = getHttpStatusCode(html);var code = generateCode(status);
var code = generateCode(status);
writeFile(
};
});
})();
代碼寄宿在github:https://github.com/greengerong/node-httpstatuscode
最終生成類別為:
複製程式碼
程式碼如下:
View Code
exports. >"Continue": 100,
"SwitchingProtocols": 101,
"OK": 200,
"Created": 201,
"Accepted": 202, "Nonon🎜: 203,
"NoContent": 204,
"ResetContent": 205,
"PartialContent": 206,
"MultipleChoices": 300,
"Ambiguous" "MovedPermanently": 301,
"Moved": 301,
"Found": 302,
"Redirect": 302,
"SeeOther": 303,
"Redirect3" ,
"NotModified": 304,
"UseProxy": 305,
"Unused": 306,
"Unauthorized": 401,
"PaymentRequired": 402,"Forbidden": 403,
var httpStatusCode = require("httpstatuscode").httpStatusCode;
var toBeEqual = function (actual,expected){
if(actualtion (actual,expected){
if(actual !== expected){
throw (actual " not equal " expected);
}
};
toBeEqual(httpStatusCode.OK,200); >toBeEqual(httpStatusCode.Created,201);
toBeEqual(httpStatusCode.BadRequest,400);
toBeEqual(httpStatusCode.InternalServerE>,5000); 🎜>
console.log(httpStatusCode);
console.log("success");
懶人的文章總是代碼多餘文字,希望代碼能說明一切,感謝各位能閱讀。

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

gm是基于node.js的图片处理插件,它封装了图片处理工具GraphicsMagick(GM)和ImageMagick(IM),可使用spawn的方式调用。gm插件不是node默认安装的,需执行“npm install gm -S”进行安装才可使用。

如何用pkg打包nodejs可执行文件?下面本篇文章给大家介绍一下使用pkg将Node.js项目打包为可执行文件的方法,希望对大家有所帮助!

本篇文章带大家详解package.json和package-lock.json文件,希望对大家有所帮助!

本篇文章给大家分享一个Nodejs web框架:Fastify,简单介绍一下Fastify支持的特性、Fastify支持的插件以及Fastify的使用方法,希望对大家有所帮助!

node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助!

本篇文章给大家分享一个Node实战,介绍一下使用Node.js和adb怎么开发一个手机备份小工具,希望对大家有所帮助!

先介绍node.js的安装,再介绍使用node.js构建一个简单的web服务器,最后通过一个简单的示例,演示网页与服务器之间的数据交互的实现。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3漢化版
中文版,非常好用

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器