在mongodb / mongoose中存储颜色十六进制值的最佳方法是什么

Eri*_*rik 2 mongoose mongodb

我需要存储一些十六进制的颜色我喜欢的项目#fff#fafafared。我应该为此使用哪种最佳类型?

谢谢!

Mat*_*yhr 5

只需使用String并添加一些验证以确保输入的类型正确:

COLORS = ['red', 'blue', ...];

function colorValidator (v) {
    if (v.indexOf('#') == 0) {
        if (v.length == 7) {  // #f0f0f0
            return true;
        } else if (v.length == 4) {  // #fff
            return true;
        }
    }
    return COLORS.indexOf(v) > -1;
};

new Schema({
    color: { type: String, validate: [colorValidator, 'not a valid color'] }
});
Run Code Online (Sandbox Code Playgroud)

我写了colorValidator快速帮助您获得一个想法,但是您可以轻松地扩展它以进行更复杂的颜色验证。