Skip to content

Instantly share code, notes, and snippets.

@JacksonTian
Created October 20, 2016 08:23
Show Gist options
  • Save JacksonTian/79ece316cc9d7317c5eaefe90e2e6343 to your computer and use it in GitHub Desktop.
Save JacksonTian/79ece316cc9d7317c5eaefe90e2e6343 to your computer and use it in GitHub Desktop.
从CSV导数据到Mongodb的脚本。
'use strict';
const fs = require('fs');
const path = require('path');
const parse = require('csv-parse');
const co = require('co');
const Project = require('../proxy/project');
var parseCSV = function () {
return new Promise((resolve, reject) => {
var parser = parse({delimiter: ','}, function(err, list){
if (err) {
return reject(err);
}
resolve(list);
});
var input = fs.createReadStream(path.join(__dirname, './project.csv'));
input.pipe(parser);
});
};
co(function* () {
var list = yield parseCSV();
list = list.slice(1);
var domain = '';
var projects = list.map((item) => {
var project = {};
if (item[0]) {
domain = item[0];
}
project.domain = domain;
project.name = item[1];
project.description = item[2];
project.repo = item[3];
return project;
}).filter((item) => {
return item.name;
});
for (var i = 0; i < projects.length; i++) {
var project = projects[i];
yield Project.addProject(project);
}
}).then(() => {
console.log('done');
}, (err) => {
console.log(err.stack);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment