文档章节

nodejs加载xml数据并且保存到mongodb中

雷伟波
 雷伟波
发布于 2015/04/17 00:57
字数 297
阅读 32
收藏 0

项目中需要初始化中国所有省份的信息到mongo db中,在网上找到 省份数据数据是xml格式的,所以大致思路是

  1. 从xml中读取数据,存入对应的model的数据中
  2. 调用model对应的save方法
var fs = require('fs');
fs.readFile('Provinces.xml', function(err, data) {
    ....
});

以上代码就是先从文件流通过字符串的形式读入,然后通过libxmljs去解析,得到数据之后,存入到province这个对象里面:

var xmlDoc = libxmljs.parseXmlString(data);
    var provinces = xmlDoc.find("//Province");

    var length = provinces.length;
    var provinceList = [];
    for(var i = 0; i < length; i++) {
      var province = new Province();
      province.id = provinces[i].attr('ID').value();
      province.name = provinces[i].attr('ProvinceName').value();
      provinceList.push({id: provinces[i].attr('ID').value(), name: provinces[i].attr('ProvinceName').value()});
    }

这一步犯了一个很大的错误,我以为push的时候,传入一个provicen对象即可,但这样是不对的,需要传入一个json格式的数组,才能正确存入到mongodb里面

然后通过mongoose去打开mongo的数据库连接:

var mongoose = require('mongoose');

    mongoose.set('debug', true);
    mongoose.connect(mongoose_url);
    mongoose.connection.on('error', function () {
      console.log('Mongoose connection error', arguments);
    });
    mongoose.connection.once('open', function callback() {
      Province.collection.insert(provinceList, function(err, docs) {
        if (err) {
          console.log('error:' +err.message);
        } else {
          console.info('%d potatoes were successfully stored.', docs.length);
        }
      })
    });

© 著作权归作者所有

共有 人打赏支持
雷伟波
粉丝 1
博文 4
码字总数 2113
作品 0
杭州
Node.js和Geddy初学者指南 - 第三部分:使用Mongdb持久化你的数据

日期:2012-4-12 来源:GBin1.com 在这个三个部分的教程中,我们教大家使用Node.js和Geddy来创建了一个todo的管理应用,上一篇我们将数据保存在内存中,在这个系列最后一篇文章中,我们将介绍...

gbin1
2012/04/13
0
0
nodejs开发——mongodb数据库入门

当你还在为开发Nodejs使用哪种数据库而犹豫时,那就选择mongodb吧。在nodejs中操作mongodb非常方便,mongodb天然的支持JSON,增删改查都非常简单。本篇博客主要来实现在nodejs中使用mongodb...

chenyufeng1991
2017/02/02
0
0
利用node.js和mongodb为你的app写一个web服务

在当今这个协作和社交应用的世界里,其关键是要有一个能简单构建和易于部署的后台。许多组织机构都依赖于一个应用栈(Application Stack),其使用下面三项技术: 这个栈对于移动应用来说相当...

人生天地间
2014/04/28
0
0
JS服务端系列-nodejs+express+ejs+mongodb的数据显示

1.我们下载好mongodb数据库,这个程序我放在nodejs的目录下了, 我的nodejs是安装在d: nodejs目录下,看图可以看到我的存放位置,这个随便放置 2.打开cmd窗口,转到mongodb的bin目录下, 执行...

透笔度
2015/08/05
0
0
使用express框架时,用MongoDB存放session时,出现错误,解决方法

使用express框架时,用MongoDB存放session时,出现错误如下: D:WorkSpacenodejsusernodemodulesconnect-mongolibconnect-mongo.js:153 throw new Error('Error connecting to database'); ......

maweitao
2014/04/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL SQL 常见用法

某字段重复记录 select a.fieldA from tableA a group by a.fieldA having count(a.fieldA)>1;==select * from (select a.fieldA, count(1) as faCount from tableA a group......

园领T
58分钟前
1
0
如何使用 iptables 和 firewalld 工具来管理 Linux 防火墙规则

以下是如何使用 iptables 和 firewalld 工具来管理 Linux 防火墙规则。 防火墙 防火墙是一组规则。当数据包进出受保护的网络区域时,进出内容(特别是关于其来源、目标和使用的协议等信息)会...

linuxprobe16
今天
1
0
发生系统错误 5 拒绝访问

1、使用命令net start *开启一个服务的时候,出现发生系统错误5,拒绝访问。 解决:切换到管理员模式执行此命令即可。

fang_faye
今天
1
0
devops 成长路线

https://36kr.com/p/5157249.html

swingcoder
今天
1
0
Java内存区域的划分和异常

行时数据区域 JVM在运行Java程序时候会将内存划分为若干个不同的数据区域。 程序计数器 线程私有。可看作是当前线程所执行的字节码的行号指示器,字节码解释器的工作是通过改变这个计数值来读...

架构师springboot
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部