pinclub/pinclub

View on GitHub
bin/generate_accesstoken.js

Summary

Maintainability
A
35 mins
Test Coverage
// 一次性脚本
// 为所有老用户生成 accessToken

var uuid = require('node-uuid');
var mongoose = require('mongoose');
var config = require('../config');
var async = require('async');
require('../models/user');

mongoose.connect(config.db + config.dbname, function (err) {
  if (err) {
    console.error('connect to %s error: ', config.db + config.dbname, err.message);
    process.exit(1);
  }
});

var UserModel = mongoose.model('User');

var hasRemain = true;
async.whilst(
  function () {
    return hasRemain;
  },
  function (callback) {
    UserModel.findOne({accessToken: {$exists: false}}, function (err, user) {
      if (!user) {
        hasRemain = false;
        callback();
        return;
      }
      user.accessToken = uuid.v4();
      user.save(function () {
        console.log(user.loginname + ' done!');
        callback();
      });
    });
  },
  function (err) {
    mongoose.disconnect();
  });