leecade / leecade/node-debug

收集一些坑

Offen
#1 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
JavaScript
Sterne
0
Forks
0
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

http://deadhorse.me/maintainable-nodejs/#/14

var http = require('http');
var url = require('url');

http.createServer(function (req, res) {
  var query = url.parse(req.url, true).query;
  var name = query.name || '';
  res.send(name.trim());
}).listen(3000);

GET http://localhost:3000?name=foo&name=bar

throw error;

query.name = [foo, bar]; [].trim()

http://deadhorse.me/maintainable-nodejs/#/18

http.createServer(function (req, res) {
  parseBody(req, function onBody(err, body) {
    if (err) {
      res.statusCode = 500;
      return res.end(err.message);
    }
    var keys = Object.keys(body);
    res.end(keys.join(','));
  }
}).listen(3000);

function parseBody(req, callback) {
  // 获取原始的请求 body
  rawBody(req, function (err, content) {
    if (err) return callback(err);

    var body = {};
    try {
      body = JSON.parse(content);
    } catch (err) {
      return callback(err);
    }
    return callback(null, body);
  });
}

POST 'null' Boom! (JSON.parse('null') => null)

POST '"hello"' Boom! (JSON.parse('"hello"') => 'hello')

co-body

function parseBody(req, callback) {
  rawBody(req, function (err, content) {
    if (err) return callback(err);
    var body = {};
    try {
      body = JSON.parse(content);
      // 严格的只接受 object 作为 body
      if (!body || typeof body !== 'object') {
        throw new Error('request body must be object');
      }
    } catch (err) {
      return callback(err);
    }
    return callback(null, body);
  });
}

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Überprüfe zuerst die beiden verlinkten maintainable-nodejs-Abschnitte und die Inline-JavaScript-Beispiele. Lege den vorgesehenen Umfang und den Ort der gesammelten Notizen fest; als abgeschlossen gilt die Aufgabe, wenn ein abgestimmter Umfang und dokumentierte Hinweise für die gezeigten Query- und JSON-Body-Fälle vorliegen, da keine Repository-Datei oder kein Test genannt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, node.js
Bereich
backend, documentation
Issue-Typ
Dokumentation
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.