Javascript 平均堆栈中的动态html表单生成

Javascript 平均堆栈中的动态html表单生成,javascript,json,node.js,mongodb,express,Javascript,Json,Node.js,Mongodb,Express,我刚刚开始学习均值堆栈,需要动态生成动态表单 要求导入文档(excel/csv/xml/xls等)并使用它生成动态表单,以便用户可以更新其数据并再次将其导出到相应的文件中 为此,我将文档转换为JSON格式,并将JSON数据存储到MongoDB数据库中 EX:考虑此代码 XLSX < /代码>数据: ID Name dob Gender 1 user1 7-Dec-87 m 2 user2 8-Dec-87 f 3 user3

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

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

为此,我将文档转换为JSON格式,并将JSON数据存储到MongoDB数据库中

EX:考虑此代码<代码> 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到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等生成动态表单的正确方法吗?如果是,那么如何从上面的JSON生成动态表单

  • 在谷歌上搜索时,我发现mongodb会自动生成表单() 因此,它会有所帮助,因为excel文件中可能存在大量数据


非常感谢您的帮助。

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

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

您需要一些东西来获取JSON对象并提取模式,然后将其转换为Mongoose模式格式


因此,您希望向Mongoose模式添加一个有趣的模块。我搜索了node modules.com,发现:

表单生成不是一项简单的任务。您可能想考虑为此使用一个库。以下是一些可能对您有用的方法:

此外,如果需要帮助从JSON生成JSON模式:


当然:

上面的代码看起来很适合转换,特别是考虑到您的输出看起来不错。如果不尝试前端代码,那么对您没有多大帮助。您包含的github链接是针对Mongoose的,因此除非您使用Mongoose,否则它不会对您有多大帮助。正如MongoDB上的一个小提示,您实际上并没有在Mongo中存储JSON,但是。@metame:谢谢您的回复。我尝试了moogose,但它需要JSON格式的适当属性。在我的例子中,JSON是从excel文件生成的,那么我如何解决这个问题呢?@metame:Ohh所以它的BSON。。实际上,我正在使用
mongojs
nodes模块插入数据,这听起来像是另一个更清晰的问题。我建议将其作为一个单独的问题发布,或者编辑您的问题(和标题)来提问。按照您当前问题的表述方式,正确的答案需要有人为您编写大量代码。是的,您是对的电子表格是由用户创建的,他们做了一些奇怪的事情,这就是为什么我要将其转换为JSON格式的原因,请参阅答案的其余部分。您是否可以查看生成模式或node-modules.com中的另一个模式是否可以从JSON中获取模式?是。。我会查一查,然后告诉你。Thanksher是我得到的输出<代码>{“\u id”:“56d98dc1c6ca1fb0140d8e05”,“生日”:“7-Dec-87”,“id”:“1”,“Name”:“user1”}{“$schema”:”http://json-schema.org/draft-04/schema#,title:'Product',type:'string'}下面是代码
app.get('/birthdaylist/:id',function(req,res){var id=req.params.id;console.log(id);db.collection('birth').findOne({u id:mongojs.ObjectId(id)},function(err,doc){console.log(JSON.stringify(doc));var schema=GenerateSchema.JSON('Product',JSON.stringify(doc));console.log(schema);res.JSON(doc);})好,我读了说明。尝试
GenerateSchema.mongoose('Product',doc)
。祝你好运。首先,我需要定义模式来生成html表单,但在我的例子中,数据来自excel(动态),可以是任何东西。那么我如何为它定义模式呢。例如:
[{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:'user4'},{dob:'7-Dec-87',ID:'1',Name:'user1',Name:'8-Dec-87',ID:'2',Name:'user2',ID:'3'',{dob:'4-Dec-87',ID:'4',Name:'user4'}]
您已经将Excel文件转换为JSON,因此现在只需将JSON转换为JSON模式(或手动创建JSON模式)。此工具将帮助您开始: