var mongoose = require('mongoose'); var Schema = mongoose.Schema; var config = require('../config'); var UserSchema = new Schema({ name: { type: String, index: true }, loginname: { type: String, unique: true }, pass: { type: String }, email: { type: String, unique: true }, url: { type: String }, profile_image_url: {type: String}, location: { type: String }, signature: { type: String }, profile: { type: String }, weibo: { type: String }, avatar: { type: String }, score: { type: Number, default: 0 }, topic_count: { type: Number, default: 0 }, reply_count: { type: Number, default: 0 }, follower_count: { type: Number, default: 0 }, following_count: { type: Number, default: 0 }, collect_tag_count: { type: Number, default: 0 }, collect_topic_count: { type: Number, default: 0 }, create_at: { type: Date, default: Date.now }, update_at: { type: Date, default: Date.now }, is_star: { type: Boolean }, level: { type: String }, active: { type: Boolean, default: true }, receive_reply_mail: {type: Boolean, default: false }, receive_at_mail: { type: Boolean, default: false }, from_wp: { type: Boolean }, retrieve_time : {type: Number}, retrieve_key : {type: String} }); UserSchema.virtual('avatar_url').get(function () { var avatar_url = this.profile_image_url || this.avatar; if (!avatar_url) { avatar_url = config.site_static_host + '/images/user_icon&48.png'; } else { // url不会出现空格,解决之前被@leizongmin 黑的bug avatar_url = avatar_url.split(' ', 1)[0]; } return avatar_url; }); mongoose.model('User', UserSchema);