2016-03-04 12 views
11

में डायनामिक एचटीएमएल फॉर्म पीढ़ी मैंने अभी MEAN स्टैक पर सीखना शुरू कर दिया है और फ्लाई पर गतिशील रूपों को उत्पन्न करने की आवश्यकता है।मीन स्टैक

आवश्यकता दस्तावेज (एक्सेल/सीएसवी/एक्सएमएल/एक्सएलएस इत्यादि) आयात करना है और इसका उपयोग करके गतिशील रूप उत्पन्न करना है ताकि उपयोगकर्ता अपना डेटा अपडेट कर सके और फिर इसे संबंधित फ़ाइल में निर्यात कर सके।

तो इसे पूरा करने के लिए मैं दस्तावेजों को JSON प्रारूप में परिवर्तित कर रहा हूं और JSON डेटा को MongoDB डेटाबेस में संग्रहीत कर रहा हूं।

पूर्व: विचार करें इस 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 

और मैं JSON प्रारूप को यह का उपयोग कर xlsx-to-json मॉड्यूल परिवर्तित कर रहा हूँ और 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); 
      }); 
     } 
    }); 

}); 

यहाँ मैं 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); 
    }); 
}); 

से डेटा ऊपर प्राप्त करने में कठिनाई रहा हूँ और यहाँ JSON उत्पादन है:

  • :

    [ 
        { 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' } 
    ] 
    

    तो, मैं कुछ प्रश्नों है

    वें है xlsx/csv..etc से गतिशील रूप उत्पन्न करने के लिए मैं सही दृष्टिकोण कर रहा हूं? यदि हां, तो मैं ऊपर जेएसओएन से गतिशील रूप कैसे उत्पन्न कर सकता हूं।

  • जबकि गूगल पर तलाश मैं MongoDB पाया है उत्पन्न करता फॉर्म स्वतः (https://github.com/GothAck/forms-mongoose) तो यह मदद मिलेगी क्योंकि वहाँ एक्सेल फाइलों पर विशाल डेटा का मौका हो सकता है।

किसी भी मदद की वास्तव में सराहना की जाएगी।

+0

उपरोक्त कोड रूपांतरण के लिए ठीक दिखता है, विशेष रूप से con आपके आउटपुट को कम करना अच्छा लग रहा है। फ्रंट एंड कोड पर प्रयास किए बिना, SO आपको बहुत मदद नहीं कर सकता है। आपके द्वारा शामिल गिथब लिंक मोंगोस के लिए है, जब तक कि आप मोंगोस का उपयोग नहीं कर रहे हैं, यह आपकी बहुत मदद नहीं करेगा। – metame

+0

और मोंगोडीबी पर एक छोटे से नोट के रूप में, आप वास्तव में मोंगो में जेएसओएन संग्रहीत नहीं कर रहे हैं, लेकिन [बीएसओएन] (http://bsonspec.org/)। – metame

+0

@ मेटाम: उत्तर देने के लिए धन्यवाद। मैंने moogose की कोशिश की लेकिन इसके लिए JSON प्रारूप में उचित विशेषताओं की आवश्यकता है। मेरे मामले में जेएसओएन एक्सेल फ़ाइल से उत्पन्न हो रहा है तो मैं उस मुद्दे से कैसे निपट सकता हूं? – Sky

उत्तर

4

क्या आपको वास्तव में एक मनमाने ढंग से स्प्रेडशीट का विश्लेषण करने और स्कीमा को गतिशील रूप से निकालने की आवश्यकता है, या क्या आप समय से पहले स्कीमा जानते हैं? यदि आप स्कीमा को जानते हैं, तो मोंगोस फॉर्म उत्पन्न करने वाला उदाहरण सरल है। लेकिन सुनिश्चित करें कि वास्तव में एक आवश्यकता है क्योंकि यह कठिन है।

आप कभी भी 100% होने जा रहे हैं क्योंकि उपयोगकर्ताओं द्वारा उपयोगकर्ताओं द्वारा बनाई गई स्प्रैडशीट और उपयोगकर्ता अजीब चीजें करते हैं। लेकिन आप ऐसा कुछ कर सकते हैं जो अधिकांश समय काम करता है।

आपको कुछ ऐसा चाहिए जो JSON ऑब्जेक्ट लेता है और स्कीमा निकालता है और उसे मोंगोज़ स्कीमा प्रारूप में रखता है।

तो आप Mongoose स्कीमा में एक दिलचस्प मॉड्यूल जोड़ना चाहते हैं। मैंने node-modules.com खोजा और यह आया: https://github.com/Nijikokun/generate-schema

+0

हाँ आप सही स्प्रेडशीट उपयोगकर्ताओं द्वारा बनाए जाते हैं और वे अजीब चीजें करते हैं कि मैं इसे JSON प्रारूप – Sky

+0

में क्यों परिवर्तित करना चाहता हूं, इसलिए बाकी उत्तर देखें। क्या आप देख सकते हैं कि जनरेट-स्कीमा या नोड- modules.com से दूसरा एक JSON से स्कीमा प्राप्त करने के लिए काम करेगा? –

+0

हां .. मैं जांचूंगा और आपको बता दूंगा। धन्यवाद – Sky

3

फॉर्म जनरेशन एक मामूली कार्य नहीं है। आप इसके लिए पुस्तकालय का उपयोग करने पर विचार करना चाह सकते हैं।

http://jsonschema.net/#/

और निश्चित रूप से: अगर आप JSON से पैदा JSON स्कीमा मदद की जरूरत है, इसके अलावा

http://schemaform.io/

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

: यहाँ कुछ है कि आप के लिए उपयोगी हो सकते हैं: http://json-schema.org/

+0

इस के लिए मुझे HTML फॉर्म उत्पन्न करने के लिए स्कीमा को परिभाषित करने की आवश्यकता है, लेकिन मेरे मामले में डेटा एक्सेल (गतिशील रूप से) से आ रहा है जो कुछ भी हो सकता है।तो मैं इसके लिए स्कीमा कैसे परिभाषित कर सकता हूं। पूर्व: '[ {dob: '7-Dec-87', आईडी: '1', नाम: 'user1'}, {dob: '8-Dec-87', आईडी: '2', नाम: ' user2 '}, {dob:' 9-Dec-87 ', आईडी:' 3 ', नाम:' user3 '}, {dob:' 4-Dec-87 ', आईडी:' 4 ', नाम:' user4 '} ], [ {dob:' 7-Dec-87 ', आईडी:' 1 ', नाम:' user1 '}, {dob:' 8-Dec-87 ', आईडी:' 2 ', नाम: 'user2'}, {dob: '9-Dec-87', आईडी: '3', नाम: 'user3'}, {dob: '4-Dec-87', आईडी: '4', नाम: 'user4'} ] ' – Sky

+0

आपने अपनी एक्सेल फ़ाइल को JSON में परिवर्तित कर दिया है, इसलिए अब आपको बस अपने JSON को JSON स्कीमा में परिवर्तित करना है (या मैन्युअल रूप से JSON स्कीमा बनाएं)। इस टूल को आपको प्रारंभ करने में मदद करनी चाहिए: http://jsonschema.net/#/ – Trevor

संबंधित मुद्दे