Estoy trabajando en el proyecto de verificación de documentos.
cuando existe el documento emitido por el usuario, el programa devuelve el resultado JSON correcto.
aquí está la salida cuando ejecuto
<% console.log('fit', JSON.parse(documents, null, '\t')) %>
y cuando el documento existe (salida esperada),
Ajuste de salida [ { Clave: 'DOCUMENTO0', Registro: { nombre: 'licenciatura en ciencias', url: 'https://bitcoin.org/ggg.pdf', emitido por: 'sol123', fecha de emisión: '12:18 PM, 25 September, 2021', hashedDoc: 'dac729a8acf4b8a88f73f5bd84206c34e01e0992efa251b772f68696e2c2539c9ed0090e73ef6b87dc24e3177c6fd5341c3e9e24ef14267ce07ab9428aeed897', docType: 'Whitepaper' } } ]
pero, cuando el documento no es emitido por el usuario, por ejemplo, si el usuario es nuevo y ha iniciado sesión por primera vez, devuelve el siguiente error.
Error de sintaxis: /home/verification/fabcar/javascript/views/pages/dashboard.ejs:15 13| 14|
15| <% JSON.parse(documents).forEach(document => { %> 16| <a class="list-group-item list-group-item-action" id="<%= document.Key %>" data -bs-toggle="tab" 17| href="#list-<%= documento.Clave %>" role="tab" aria-controls="lista-<%= documento.Clave %>" style="min -ancho: 200px;"><%= documento.Clave %> 18| <% }) %>
Final inesperado de la entrada JSON en JSON.parse (
Traté de verificar el contenido de los documentos cuando no hay un documento emitido por el usuario o cuando un usuario inició sesión en el sistema por primera vez, el contenido del objeto json cuando no hay un documento emitido por el usuario,
{ match: true, _locals: [Object: null prototype] {}, username: 'uuu123', password: '09283ba5752cf589bad68e1d60d8165183386b1c75ba01c1d662719bbb571580bc7647667975c9d0410ae48d5e2e97bc3af206e7c21a2bc5624309bb237bdddd', documents: Buffer }
mi pregunta es, ¿cómo puedo mostrar el mensaje "No se emitió ningún documento" en EJS cuando el usuario no emitió ningún documento? ¿Cómo puedo usar el conjunto de valores para los documentos cuando no hay ningún documento emitido por el usuario en declaraciones if else en ejs? Por favor, necesito tu ayuda
Parece que el análisis debería ocurrir en el controlador, donde puede intentar capturarlo y manejar el caso de manera adecuada. En general, las vistas deben contener muy poca "lógica empresarial" y, en su lugar, solo deben mostrar los datos que ya se les han entregado.
Por ejemplo, realice el análisis en un controlador y, si tiene éxito, pase los documentos analizados a la vista. Si el análisis falla, represente la vista sin los documentos.
Luego, la vista solo puede verificar si los documents están definidos. De no ser así, mostrar el mensaje "Sin documento".
Ejemplo de pseudocódigo:
// In the controller class MyController { getDocumentsView() { const viewData = {} try { viewData.documents = JSON.parse(documents) } catch (e) { console.log('Error parsing documents:', documents) } return view('myViewName.ejs', viewData) } }