MEAN堆栈中的动态html表单生成

J.K*_*.A. 11 javascript json mongodb node.js express

我刚开始学习MEAN堆栈,需要动态生成动态表单.

要求是导入文档(excel/csv/xml/xls等...)并使用它生成动态表单,以便用户可以更新其数据并再次将其导出到相应的文件中.

因此,为了实现这一点,我将文档转换为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
Run Code Online (Sandbox Code Playgroud)

我正在使用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);
            });
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

在这里,我从中获取以上数据 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);
    });
});
Run Code Online (Sandbox Code Playgroud)

这是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' } 
]
Run Code Online (Sandbox Code Playgroud)

所以,我几乎没有疑问:

  • 这是我正在做的从xlsx/csv..etc生成动态表单的正确方法吗?如果是,那么我如何从JSON上面生成动态表单.

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

任何帮助将非常感激.

Jas*_*say 4

您实际上需要分析任意电子表格并动态提取架构,还是您提前知道架构?如果您了解架构,那么 Mongoose 表单生成示例就很简单。但要确保这确实是一项要求,因为这很困难。

你永远不会达到 100%,因为电子表格是由用户创建的,而用户会做一些奇怪的事情。但你可以做出一些在大多数情况下都有效的东西。

您需要接受 JSON 对象并提取模式并将其放入 Mongoose 模式格式的东西。

所以您想向 Mongoose 模式添加一个有趣的模块。我搜索node-modules.com了这个: https: //github.com/Nijikokun/generate-schema