Я пытаюсь отобразить результаты запроса MySQL с использованием EJS. Запрос возвращает массив в следующей форме:
[ TextRow {
'Sample ID': 'S0001',
'Panel ID': 'P0001',
Gene: BRAC1,
'DNA z-score': 0.7
Chromosome: 11 },
TextRow {
'Sample ID': 'S0003',
'Panel ID': 'P0009',
Gene: PTEN,
'DNA z-score': 0.5,
Chromosome: 5 } ]
У меня есть следующий код EJS для отображения значений в массиве:
<% if(data_json.length) { %>
<% for(var i = 0; i < data.length; i++) { %>
<tr>
<td><%=data_json[i]["Sample ID"]%></td>
<td><%=data_json[i]["Variant ID"]%></td>
<td><%=data_json[i].Gene%></td>
<td><%=data_json[i]["DNA z-score"]%></td>
<td><%=data_json[i].Chromosome%></td>
</tr>
<% } %>
Я преобразовал массив в JSONиспользуя следующий массив:
var data_json = JSON.stringify(data);
console.log(data.length);
console.log(data_json.length);
Однако длина data
равна 14314. Длина data_json
равна 4682750. Я не уверен, почему длина массива изменилась. Когда я пытаюсь распечатать содержимое массива data_json
, я получаю следующую ошибку:
0: ExitFrame [pc: 0x2c6ff95be3d]
Security context: 0x319ccda70891 <JSObject>
1: /* anonymous */ [0x319c72c8acc9] [0x319c50c026f1 <undefined>:~29] [pc=0x2c6ffc5b337](this=0x319cc208d461 <JSGlobal Object>)
2: /* anonymous */ [0x319c72c8ad81] [0x319c50c026f1 <undefined>:32] [bytecode=0x319c30c534c9 offset=50](this=0x319cc208d461 <JSGlobal Object>,locals=0x319c30c7f921 <Object map = 0x319c37bf7b01>,filters=0x319ce927f471 <Object m...
FATAL ERROR: invalid array length Allocation failed - JavaScript heap out of memory
1: 0x10003d035 node::Abort() [/usr/local/bin/node]
2: 0x10003d23f node::OnFatalError(char const*, char const*) [/usr/local/bin/node]
3: 0x1001b8e15 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
4: 0x100586d72 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]
5: 0x10055f54a v8::internal::Factory::NewFixedArrayWithFiller(v8::internal::Heap::RootListIndex, int, v8::internal::Object*, v8::internal::PretenureFlag) [/usr/local/bin/node]
6: 0x10050699e v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastPackedObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)2> >::GrowCapacity(v8::internal::Handle<v8::internal::JSObject>, unsigned int) [/usr/local/bin/node]
7: 0x1007a1daf v8::internal::Runtime_GrowArrayElements(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
8: 0x2c6ff95be3d
9: 0x2c6ffc5b337
Abort trap: 6
Я не уверен, почему я получаю эту ошибку и как ее устранить. Любые идеи приветствуются.