1

jade と loop に問題があり、mysql クエリから配列がスローされました。行をconsole.logログに記録しようとすると、これがダンプされます。

{ id: 512,
  first: 'Mark',
  last: 'Neal',
  client: 'City of South Bend',
  employer: null,
  access: null }

それは結構です。

今、私はそれを設定しようとしているので、玉が列名と列を自動的に入力します。とにかく、ここに私の翡翠のコードがあります。

block content
  .container
  h1 Data Tables      
  .span12
    table.table.table-striped.table-bordered.table-condensed
      thead
        each f in fields
          th= f.name
      tbody
        each i in results
          tr
            each b in i
              td= b

初投稿なので写真は載せられないみたいなのでコピペしてみます。

停止する代わりに、}このように 2 つの新しいコラムで続けます。

ここに画像の説明を入力

function (parser, fieldPackets, typeCast, nestTables, connection) {
  var self = this;
  var next = function () {
    return self._typeCast(fieldPacket, parser, connection.config.timezone, connection.config.supportBigNumbers, connection.config.bigNumberStrings);
  };
  for (var i = 0; i < fieldPackets.length; i++) {
    var fieldPacket = fieldPackets[i];
    var value;
    if (typeof typeCast == "function") {
      value = typeCast.apply(connection, [new Field({
        packet: fieldPacket,
        parser: parser
      }), next]);
    } else {
      value = (typeCast) ? this._typeCast(fieldPacket, parser, connection.config.timezone, connection.config.supportBigNumbers, connection.config.bigNumberStrings) : ((fieldPacket.charsetNr === Charsets.BINARY) ? parser.parseLengthCodedBuffer() : parser.parseLengthCodedString());
    } if (typeof nestTables == "string" && nestTables.length) {
      this[fieldPacket.table + nestTables + fieldPacket.name] = value;
    } else if (nestTables) {
      this[fieldPacket.table] = this[fieldPacket.table] || {};
      this[fieldPacket.table][fieldPacket.name] = value;
    } else {
      this[fieldPacket.name] = value;
    }
  }
}

function (field, parser, timeZone, supportBigNumbers, bigNumberStrings) {
  var numberString;
  switch (field.type) {
  case Types.TIMESTAMP:
  case Types.DATE:
  case Types.DATETIME:
  case Types.NEWDATE:
    var dateString = parser.parseLengthCodedString();
    var dt;
    if (dateString === null) {
      return null;
    }
    if (timeZone != 'local') {
      if (field.type === Types.DATE) {
        dateString += ' 00:00:00 ' + timeZone;
      } else {
        dateString += ' ' + timeZone;
      }
    }
    dt = new Date(dateString);
    if (isNaN(dt.getTime())) {
      return dateString;
    }
    return dt;
  case Types.TINY:
  case Types.SHORT:
  case Types.LONG:
  case Types.INT24:
  case Types.YEAR:
  case Types.FLOAT:
  case Types.DOUBLE:
    numberString = parser.parseLengthCodedString();
    return (numberString === null || (field.zeroFill && numberString[0] == "0")) ? numberString : Number(numberString);
  case Types.NEWDECIMAL:
  case Types.LONGLONG:
    numberString = parser.parseLengthCodedString();
    return (numberString === null || (field.zeroFill && numberString[0] == "0")) ? numberString : ((supportBigNumbers && (bigNumberStrings || (Number(numberString) > IEEE_754_BINARY_64_PRECISION))) ? numberString : Number(numberString));
  case Types.BIT:
    return parser.parseLengthCodedBuffer();
  case Types.STRING:
  case Types.VAR_STRING:
  case Types.TINY_BLOB:
  case Types.MEDIUM_BLOB:
  case Types.LONG_BLOB:
  case Types.BLOB:
    return (field.charsetNr === Charsets.BINARY) ? parser.parseLengthCodedBuffer() : parser.parseLengthCodedString();
  case Types.GEOMETRY:
    return parser.parseGeometryValue();
  default:
    return parser.parseLengthCodedString();
  }
}
4

1 に答える 1

0

JADEコードだけを見ているだけなら、これは役に立ちます。私はこのような同様のプログラムを解決しました:

- each value, i in results
    tr
    - var count = 0
        - each b in i
            - if(count < Object.keys(value).length)
                td= b
            - count += 1

JADE ファイルに収まるように、独自の変数の名前を変更しました。

コード例は自明であることを願っていますが、それがどのように機能するかを簡単に説明すると:

最初の変数「値」は、配列「結果」の各項目を取得します。これは、キー値が異なるだけの JSON オブジェクトであっても同様です。

その後、キーの数をカウントする変数を作成しました。Object.keys(element).length) に対するチェックがない場合は、「parse」値と「_typeCast」値の 2 つの値が出力されます。

とにかく、このカウント変数は使用されたキーの数をカウントするだけで、後で JSON 配列内のキーの合計数と比較されます。すべてのキーが出力されると、それ以上出力されなくなります。

これがあなた(または他の誰か)に役立つことを願っています!

于 2014-01-06T03:40:06.330 に答える