在这里帆船。我有sailsjs(v0.12.3)与护照一起运行,一切正在运行。 User模型位于/node_modules/sails-auth/api/models/User.js中,并具有用户名,电子邮件和护照字段。我想在users表中添加其他字段(如bday - > string,favorite_car-> string),但无法找到执行此操作的好方法。编辑现有的User.js文件以添加新属性可能会有效,但似乎是一个坏主意。我已经尝试创建一个User.js文件(在myproj / api / models /中),但是我收到错误声明:
错误:映射自定义外键:role-> user。属性:roles
不存在于:集合:user
非常感谢任何有关最佳方法的见解。 感谢
加入: 我尝试了许多不同的迭代,从空的User.js文件(在myproj / api / models /中)到sails-auth附带的整个代码(在myproj / node_modules / sails-auth / dist / api / models / User中) .js文件)。它们都会产生相同的错误。以下是尝试从node_modules的User.js:
的代码'use strict';
var _ = require('lodash');
var crypto = require('crypto');
/** @module User */
module.exports = {
attributes: {
username: {
type: 'string',
unique: true,
index: true,
notNull: true
},
email: {
type: 'email',
unique: true,
index: true
},
passports: {
collection: 'Passport',
via: 'user'
},
getGravatarUrl: function getGravatarUrl() {
var md5 = crypto.createHash('md5');
md5.update(this.email || '');
return 'https://gravatar.com/avatar/' + md5.digest('hex');
},
toJSON: function toJSON() {
var user = this.toObject();
delete user.password;
user.gravatarUrl = this.getGravatarUrl();
return user;
}
},
beforeCreate: function beforeCreate(user, next) {
if (_.isEmpty(user.username)) {
user.username = user.email;
}
next();
},
/**
* Register a new User with a passport
*/
register: function register(user) {
return new Promise(function (resolve, reject) {
sails.services.passport.protocols.local.createUser(user, function (error, created) {
if (error) return reject(error);
resolve(created);
});
});
}
};