这是我尝试在 Sails 后端存档记录时邮递员中的错误返回。
用法错误: 新记录的初始数据无效。详细信息: 无法使用提供的新记录之一: 必需属性缺少值id
。 期望一个字符串,但得到:未定义 [?]查看 https://sailsjs.com/support 以获取帮助
请有人知道此错误意味着什么?提前谢谢。
感谢您的回复 我的代码: - 在控制器中:
try {
await Laboratory.archive({id: inputs.id});
} catch (error) {
console.log('Error-6 CORE-DELETE_LABORATORY:', error)
exits.failed(`Error-6 CORE-DELETE_LABORATORY: ${error}${inputs.id}`)}
在文件配置/模型中.js:
module.exports.models = {
migrate: 'alter',
fetchRecordsOnUpdate: true,
fetchRecordsOnCreate: true,
fetchRecordsOnCreateEach: true,
attributes: {
createdAt: { type: 'ref', columnType: 'datetime', autoCreatedAt: true, },
updatedAt: { type: 'ref', columnType: 'datetime', autoUpdatedAt: true, },
id: { type: 'string', columnName: '_id' },
},
dataEncryptionKeys: {
default: 'dRYQHBf8Zpza2vMS5BB3qcSiLspJP4BG37I2JkP2yYw='
},
cascadeOnDestroy: true
};
实验室型号:
module.exports = {
attributes: {
type: {
type: 'string',
isIn: ['INSIDE', 'OUTSIDE'],
required: true,
},
raisonSocial: {
type: 'string',
required: true,
unique: true,
},
city: {
type: 'string'
},
address: {
type: 'string'
},
email: {
type: 'string'
},
neighborhood: {
type: 'string'
},
contacts: {
type: 'string'
},
logo: {
type: 'string'
},
lat: {
description: 'Latitude',
type: 'number'
},
long: {
description: 'Longitude',
type: 'number'
},
website: {
type: 'string',
defaultsTo: ''
},
subdomain: {
type: 'string',
unique: true,
required: true,
},
mobileMoney: {
type: 'string'
},
bank: {
type: 'string',
defaultsTo: ''
},
bankAccountID: {
type: 'string',
defaultsTo: ''
},
validated : {
type: 'boolean',
defaultsTo : false
},
f_establishment: {
model: 'establishment'
},
director: {
description: 'Chef of laboratory id',
type: 'json',
example: '{name, phone, role}',
required: true,
}
},
customToJSON () {
if (this.logo) {
this.logo = `${process.env.BASE_URL}/avatar/${this.logo}`
}
return this
}
};
谢谢。
当我们以不正确的方式使用 db 方法时,Sails 会抛出UsageError
。更准确地说,这就是 Sails 在其文档中的内容。
当错误的名称为:"UsageError"时,这表示水线 方法使用不正确,或使用无效选项执行(对于 例如,尝试创建将违反以下一项的新记录 模型的高级验证规则。
https://sailsjs.com/documentation/concepts/models-and-orm/errors#?usage-errors
举一个简单的例子,如果你有一个带有限制参数的数据库查询,并且你开始传递该参数的字符串值,Sails with 开始抛出UsageError
.
在您的情况下,事情应该从错误细节本身不言自明。当您的代码流尝试运行Laboratory.archive({id: inputs.id})
时,它inputs.id
undefined
,但如果您看到config/models.js
id
,则预计是一个字符串。
只需进行基本的调试,看看为什么inputs.id
未定义并解决这个问题,你应该很高兴。