国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison interface Web js tutoriel Node.js生成HttpStatusCode輔助類發(fā)布到npm_基礎(chǔ)知識(shí)

Node.js生成HttpStatusCode輔助類發(fā)布到npm_基礎(chǔ)知識(shí)

May 16, 2016 pm 05:37 PM
node.js

作為一個(gè)好的Restfull Api不僅在于service url的語義,可讀性,冪等,正交,作為http狀態(tài)碼也很重要,一個(gè)好的Http Status Code給使用者一個(gè)很好的響應(yīng),比如200表示正常成功,201表示創(chuàng)建成功,409沖突,404資源不存在等等。所以在做一個(gè)基于node.js+mongodb+angularjs的demo時(shí)發(fā)現(xiàn)node.js express沒有提供相應(yīng)的輔助類,但是本人不喜歡將201,404這類毫無語言層次語義的東西到處充斥著,所以最后決定自己寫一個(gè),但是同時(shí)本人也很懶,不喜歡做重復(fù)的苦力活,怎么辦?那就從我最熟悉的c#中HttpStatusCode枚舉中copy出來吧,最后為了簡(jiǎn)便在mac上所以采用了利用node.js去解析msdn關(guān)于httpstatuscode的文檔生成node.js的輔助類。

代碼很簡(jiǎn)單:

復(fù)制代碼 代碼如下:

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);

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 = " + JSON.stringify(status) + ";";

return code;

};



function writeFile(code){

fs.writeFile(output, code, function(err) {

if(err) {

console.log(err);

} else {

console.log("The file was saved " + output + "!");

}

});

};




function handler(html){

var status = getHttpStatusCode(html);

var code = generateCode(status);

writeFile(code);

};




});

})();

代碼寄宿在github:https://github.com/greengerong/node-httpstatuscode

最終生成類為:

復(fù)制代碼 代碼如下:

View Code
exports.httpStatusCode = {
"Continue": 100,
"SwitchingProtocols": 101,
"OK": 200,
"Created": 201,
"Accepted": 202,
"NonAuthoritativeInformation": 203,
"NoContent": 204,
"ResetContent": 205,
"PartialContent": 206,
"MultipleChoices": 300,
"Ambiguous": 300,
"MovedPermanently": 301,
"Moved": 301,
"Found": 302,
"Redirect": 302,
"SeeOther": 303,
"RedirectMethod": 303,
"NotModified": 304,
"UseProxy": 305,
"Unused": 306,
"TemporaryRedirect": 307,
"RedirectKeepVerb": 307,
"BadRequest": 400,
"Unauthorized": 401,
"PaymentRequired": 402,
"Forbidden": 403,
"NotFound": 404,
"MethodNotAllowed": 405,
"NotAcceptable": 406,
"ProxyAuthenticationRequired": 407,
"RequestTimeout": 408,
"Conflict": 409,
"Gone": 410,
"LengthRequired": 411,
"PreconditionFailed": 412,
"RequestEntityTooLarge": 413,
"RequestUriTooLong": 414,
"UnsupportedMediaType": 415,
"RequestedRangeNotSatisfiable": 416,
"ExpectationFailed": 417,
"UpgradeRequired": 426,
"InternalServerError": 500,
"NotImplemented": 501,
"BadGateway": 502,
"ServiceUnavailable": 503,
"GatewayTimeout": 504,
"HttpVersionNotSupported": 505
};

最后考慮到或許還有很多像我一樣懶散的人,所以共享此代碼發(fā)布到了npm,只需要npm install httpstatuscode,便可以簡(jiǎn)單實(shí)用,如下是一個(gè)測(cè)試demo:

復(fù)制代碼 代碼如下:

var httpStatusCode = require("httpstatuscode").httpStatusCode;

var toBeEqual = function (actual,expected){

if(actual !== expected){

throw (actual + " not equal " + expected);

}

};

toBeEqual(httpStatusCode.OK,200);

toBeEqual(httpStatusCode.Created,201);

toBeEqual(httpStatusCode.BadRequest,400);

toBeEqual(httpStatusCode.InternalServerError,500);




console.log(httpStatusCode);

console.log("success");

懶人的文章總是代碼多余文字,希望代碼能說明一切,感謝各位能閱讀。

?

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Explication graphique détaillée de la mémoire et du GC du moteur Node V8 Explication graphique détaillée de la mémoire et du GC du moteur Node V8 Mar 29, 2023 pm 06:02 PM

Cet article vous donnera une compréhension approfondie de la mémoire et du garbage collector (GC) du moteur NodeJS V8. J'espère qu'il vous sera utile !

Un article pour parler du contr?le de la mémoire dans Node Un article pour parler du contr?le de la mémoire dans Node Apr 26, 2023 pm 05:37 PM

Le service Node construit sur une base non bloquante et piloté par les événements présente l'avantage d'une faible consommation de mémoire et est très adapté à la gestion de requêtes réseau massives. Dans le contexte de demandes massives, les questions liées au ? contr?le de la mémoire ? doivent être prises en compte. 1. Le mécanisme de récupération de place du V8 et les limitations de mémoire Js sont contr?lés par la machine de récupération de place

Parlons de la fa?on de choisir la meilleure image Docker Node.js ? Parlons de la fa?on de choisir la meilleure image Docker Node.js ? Dec 13, 2022 pm 08:00 PM

Le choix d'une image Docker pour Node peut sembler trivial, mais la taille et les vulnérabilités potentielles de l'image peuvent avoir un impact significatif sur votre processus CI/CD et votre sécurité. Alors, comment choisir la meilleure image Docker Node.js ?

Parlons de la boucle d'événements dans Node Parlons de la boucle d'événements dans Node Apr 11, 2023 pm 07:08 PM

La boucle d'événements est un élément fondamental de Node.js et permet une programmation asynchrone en garantissant que le thread principal n'est pas bloqué. Comprendre la boucle d'événements est crucial pour créer des applications efficaces. L'article suivant vous donnera une compréhension approfondie de la boucle d'événements dans Node. J'espère qu'il vous sera utile !

Que dois-je faire si le n?ud ne peut pas utiliser la commande npm ? Que dois-je faire si le n?ud ne peut pas utiliser la commande npm ? Feb 08, 2023 am 10:09 AM

La raison pour laquelle le n?ud ne peut pas utiliser la commande npm est que les variables d'environnement ne sont pas configurées correctement. La solution est la suivante?: 1. Ouvrez "Propriétés système"?; 2. Recherchez "Variables d'environnement" -> "Variables système", puis modifiez l'environnement. variables?; 3. Recherchez l'emplacement du dossier nodejs?; 4. Cliquez sur "OK".

En savoir plus sur les tampons dans Node En savoir plus sur les tampons dans Node Apr 25, 2023 pm 07:49 PM

Au début, JS ne fonctionnait que du c?té du navigateur. Il était facile de traiter les cha?nes codées en Unicode, mais il était difficile de traiter les cha?nes binaires et non codées en Unicode. Et le binaire est le format de données le plus bas du package ordinateur, vidéo/audio/programme/réseau.

Parlons en profondeur du module File dans Node Parlons en profondeur du module File dans Node Apr 24, 2023 pm 05:49 PM

Le module de fichiers est une encapsulation des opérations de fichiers sous-jacentes, telles que l'ajout de lecture/écriture/ouverture/fermeture/suppression de fichiers, etc. La plus grande caractéristique du module de fichiers est que toutes les méthodes fournissent deux versions de **synchrone** et ** asynchrone**, with Les méthodes avec le suffixe sync sont toutes des méthodes de synchronisation, et celles qui n'en ont pas sont toutes des méthodes hétérogènes.

N?ud apprenant à minimiser l'allocation du tas et à éviter les fuites de mémoire N?ud apprenant à minimiser l'allocation du tas et à éviter les fuites de mémoire Jan 11, 2023 pm 08:25 PM

Comment vérifier les fuites de mémoire dans Node.js ? L'article suivant vous présentera l'allocation de tas Nodejs et vous expliquera comment minimiser l'allocation de tas et éviter les fuites de mémoire. J'espère qu'il vous sera utile !

See all articles