文档章节

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

雷伟波
 雷伟波
发布于 2015/04/17 00:57
字数 297
阅读 30
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windbg学习记录

我开始熟练使用windbg是从帮助手册开始的,也就是.hh命令。 就像学习windows开发从msdn开始一样,微软的产品虽然不开源,但是文档做的是相当的好。然而那些开源的东西呢?开源的竞争力其实就...

simpower
12分钟前
0
0
学习scala的网站汇总

https://www.codacy.com/blog/how-to-learn-scala/

Littlebox
14分钟前
0
0
配置本地的cloud9开发环境

前言 说到在线IDE开发环境,cloud9是不能绕过的,cloud9支持很多语言,默认支持的就有Node.js,Python,Ruby,PHP,Go,更逆天的是,他还支持数据库,包括MySQL,MongoDB,Redis,SQLite。但...

Kefy
17分钟前
0
0
springcloud应用程序上下文层次结构

如果您从SpringApplication或SpringApplicationBuilder构建应用程序上下文,则将Bootstrap上下文添加为该上下文的父级。这是一个Spring的功能,即子上下文从其父进程继承属性源和配置文件,因...

itcloud
22分钟前
0
0
新程序员最爱的免费资源

简评:国外美女程序员推荐了她自己用过的一些免费资源,对新手比较友好的那种。 原作者 Ali Spittel,是个美女程序员,以下这些资源都是她自己试过的。以下「我」代表 Ali Spittel。 学 HTML...

极光推送
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部