在MEAN堆栈中生成dynamichtml表单

我刚刚开始学习MEAN栈,需要dynamic生成dynamic表单。

需要导入文档(excel / csv / xml / xls等),并使用它生成dynamic表单,以便用户可以更新其数据并将其导出到相应的文件中。

所以要做到这一点,我将文档转换为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 

我使用xlsx-to-json模块将其转换为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生成dynamic表单的正确方法? 如果是的话,那么我怎么能从上面的JSON生成dynamic表单。

  • 当我在google上探索时,我发现mongodb会自动生成表单( https://github.com/GothAck/forms-mongoose )所以它会有帮助,因为在excel文件中可能会有大量数据。

任何帮助将非常感激。

您是否真的需要分析任意的电子表格并dynamic地提取模式,或者您是否提前知道模式? 如果你知道模式,那么Mongoose表单生成的例子很简单。 但是要确保这实际上是一个要求,因为这很困难。

你永远不会100%,因为电子表格是由用户和用户创造奇怪的东西。 但是你可以做出大部分时间都有用的东西。

您需要使用JSON对象并提取模式并将其放入Mongoose模式格式。

所以你想添加一个有趣的模块到Mongoose模式。 我search了node-modules.com并且出现了: https : //github.com/Nijikokun/generate-schema

表格生成不是一项简单的任务。 你可能要考虑使用这个库。 这里有一些可能对你有用的东西:

http://schemaform.io/

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

另外,如果您需要从JSON生成JSON模式的帮助:

http://jsonschema.net/#/

当然还有: http : //json-schema.org/