我刚开始学习 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
我正在使用 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 生成动态表单的正确方法吗?如果是,那么如何从上面的 JSON 生成动态表单。
在 google 上探索时,我发现 mongodb 会自动生成表单 (https://github.com/GothAck/forms-mongoose) 那么它会有帮助吗,因为 excel 文件中可能存在大量数据。
任何帮助将不胜感激。
最佳答案
您真的需要分析任意电子表格并动态提取架构,还是您提前知道架构?如果您知道模式,那么 Mongoose 表单生成示例很简单。但请确保这实际上是一项要求,因为这很困难。
您永远不会做到 100%,因为电子表格是由用户创建的,而用户会做一些奇怪的事情。但你可以做出大部分时间都有效的东西。
您需要一个接受 JSON 对象并提取架构并将其放入 Mongoose 架构格式的东西。
所以你想在 Mongoose 模式中添加一个有趣的模块。我搜索了 node-modules.com
,结果如下:https://github.com/Nijikokun/generate-schema
https://stackoverflow.com/questions/35799329/
相关文章:
javascript - mongodb如何动态创建数据库/集合
php - 如何在 Waterline 或 MongoDB 中选择、分组和加入
python - Pymongo 或 Mongodb 将两个相等的 python 字典视为不同的对象
java - Spring数据mongodb审计不起作用..(Java配置)
node.js - 在 docker 容器中安装 Mongoose
mongodb - 为什么 MongoDB 可以创建唯一索引而 Mongoid 不能?
mongodb - 如何将 MongoDB 聚合用于通用集合操作(联合、交集、差异)