2016-03-04 12 views
11

Ho appena iniziato a imparare sullo stack MEAN e ho bisogno di generare moduli dinamici al volo.Generazione dinamica di moduli HTML nello stack MEAN

Il requisito è di importare il documento (excel/csv/xml/xls ecc.) E generare moduli dinamici che lo utilizzano in modo che un utente possa aggiornare i propri dati e quindi esportarlo nuovamente nel rispettivo file.

In questo modo, sto convertendo i documenti in formato JSON e memorizzando i dati JSON nel database MongoDB.

Es: Considerare questi dati xlsx:

ID Name  dob  Gender 
1 user1  7-Dec-87 m 
2 user2  8-Dec-87 f 
3 user3  9-Dec-87 f 
3 user4  4-Dec-87 m 

E sto convertendo questo utilizzando il modulo xlsx-to-json in formato JSON e riporlo in MongoDB.

app.post('/myapp', function (req, res) { 

    //console.log("===========" + req.file.path); 

    converter({ 
     input: req.file.path, 
     output: "output.json" 
    }, function (err, result) { 
     if (err) { 
      console.error(err); 
     } else { 
      console.log(result); 
      db.collection('test').insert(result, function (err, doc) { 
       console.log(err); 
       res.json(doc); 
      }); 
     } 
    }); 

}); 

Qui sto recupero sopra i dati da Mongodb & express.js

app.get('/myapp', function (req, res) { 
    db.collection('test').find(function (err, docs) { 
     console.log(docs); 
     res.json(docs); 
    }); 
}); 

app.get('/birthdaylist/:id', function (req, res) { 
    var id = req.params.id; 
    console.log(id); 
    db.collection('test').findOne({_id: mongojs.ObjectId(id)}, function (err, doc) { 
     console.log(JSON.stringify(doc)); 
     res.json(doc); 
    }); 
}); 

ed ecco la JSON uscita:

[ 
    { dob: '7-Dec-87', ID: '1', Name: 'user1' }, 
    { dob: '8-Dec-87', ID: '2', Name: 'user2' }, 
    { dob: '9-Dec-87', ID: '3', Name: 'user3' }, 
    { dob: '4-Dec-87', ID: '4', Name: 'user4' } 
] 

Così, ho alcune domande:

  • È th è l'approccio corretto che sto facendo per generare un modulo dinamico da xlsx/csv..etc? Se sì, allora come posso generare un modulo dinamico da sopra JSON.

  • Durante l'esplorazione su google ho trovato mongodb genera automaticamente forma (https://github.com/GothAck/forms-mongoose) Così lo aiuterà perché ci potrebbero essere possibilità di enormi dati sui files excel.

Qualsiasi aiuto sarebbe molto apprezzato.

+0

Il codice sopra sembra perfetto per la conversione, in particolare con ritoccare la tua produzione sembra buono. Senza un tentativo di front end, SO non può aiutarti molto. Il link github che includi è per Mangusta quindi, a meno che non usi la mangusta, non ti aiuterà molto. – metame

+0

E proprio come una piccola nota su MongoDB, in realtà non stai memorizzando JSON in Mongo, ma [BSON] (http://bsonspec.org/). – metame

+0

@metame: Grazie per aver risposto. Ho provato moogose ma richiede attributi appropriati in formato JSON. Nel mio caso, JSON sta generando da un file excel, quindi come posso affrontare quel problema? – Sky

risposta

4

Avete effettivamente bisogno di analizzare un foglio di calcolo arbitrario e di estrarre lo schema in modo dinamico, o conoscete lo schema in anticipo? Se si conosce lo schema, l'esempio di generazione del modulo Mongoose è semplice. Ma assicurati che sia effettivamente un requisito perché è difficile.

Non sarai mai al 100% perché i fogli di lavoro vengono creati dagli utenti e gli utenti fanno cose strane. Ma puoi fare qualcosa che funzioni la maggior parte del tempo.

È necessario qualcosa che prende un oggetto JSON ed estrae lo schema e lo inserisce in un formato di schema Mongoose.

Quindi si desidera aggiungere un modulo interessante allo schema di Mongoose. Ho cercato node-modules.com e questo è venuto fuori: https://github.com/Nijikokun/generate-schema

+0

Sì, hai ragione i fogli di calcolo sono creati dagli utenti e fanno cose strane per cui voglio convertirlo nel formato JSON – Sky

+0

Giusto, quindi vedi il resto della risposta. Puoi vedere se lo schema generativo o un altro da node-modules.com funzionerà per ottenere lo schema dal JSON? –

+0

Sì .. controllerò e ti farò sapere. Grazie – Sky

3

La generazione di moduli non è un compito banale. Si consiglia di prendere in considerazione l'utilizzo di una libreria per questo.Qui ci sono alcuni che potrebbe essere utile a voi:

http://schemaform.io/

https://github.com/jdorn/json-editor/

Inoltre, se hai bisogno di aiuto per la generazione di schema JSON da JSON:

http://jsonschema.net/#/

e, ovviamente: http://json-schema.org/

+0

Per questo primo devo definire lo schema per generare il modulo html ma nel mio caso i dati provengono da excel (in modo dinamico) che può essere qualsiasi cosa.Quindi, come posso definire lo schema per questo. Es: '[ {dob: '7-dic-87', ID: '1', nome: 'utente1'}, {dob: '8-dic-87', ID: '2', nome: ' user2 '}, {dob:' 9-Dic-87 ', ID:' 3 ', Nome:' user3 '}, {dob:' 4-Dic-87 ', ID:' 4 ', Nome:' user4 '} ], [ {dob:' 7-Dec-87 ', ID:' 1 ', Nome:' user1 '}, {dob:' 8-Dec-87 ', ID:' 2 ', Nome: 'user2'}, {dob: '9-Dec-87', ID: '3', Nome: 'user3'}, {dob: '4-Dic-87', ID: '4', Nome: 'user4'}] ' – Sky

+0

Hai convertito il tuo file Excel in JSON, quindi tutto ciò che devi fare ora è convertire lo schema JSON in JSON (o creare manualmente uno schema JSON). Questo strumento dovrebbe aiutarti a iniziare: http://jsonschema.net/#/ – Trevor