Comments 9
Для кофе от 1.7 вместо
require('coffee-script');
надо писать require('coffee-script/register');
0
Можете пожалуйста поделится причиной почему нужно включать именно «coffee-script/register»? Если это связано с ошибкой при развертывании приложения на forever — то я этой ошибки не заметил, хотя использую кофе 1.7.1
0
Просто напросто изменение интерфейса… Смотрите change log к версии 1.7.0.
0
Даёшь больше статей разных и хороших про Sails.JS!
+1
При создании модели атрибутам можно задавать ограничения, например
required: true
. В последствии, если переданный набор данных не подходит под эти ограничения, то в колбэк передается объект ошибки валидации определенной структуры и с текстом на английском. Хочется его перевести, но стандартных возможностей сделать это я не нашел. Нашел костыль, который работает, но не нравится. Есть что-нибудь в этом направлении?0
Если я правильно понял вы имеете ввиду ошибку которую например выдает waterline если есть несоответствие каких либо правил из атрибутов. Если это так — то возвращаеться примерно такой объект.
Я конечно плохо понимаю что ты хочешь сделать, но если ты хочешь в корне изменить текст то тебе придется ковырять в исходниках и там переводить места где происходит генерация объекта ошибок, но это занятие лишнее и неблагодарное. Если тебе просто удобно получать логи в разобранном виде и на русском — советую просто написать небольшой парсер для этого дела. Лично я для похожей ситуации (удобное ведения логов) использовал xml. за более удобную структуру (Имхо). В особых случаях можно использовать lodash в нем можно разбирать сложные структуры (не для простых отчетов об ошибках). Возможно я просто неправильно понял вопрос, но это те решения которые можно использовать. Если же тебе просто не нравиться читать отчеты на английском, то не повод ли это просто лучше выучить английский?
{
"error": "E_VALIDATION",
"status": 400,
"summary": "1 attribute is invalid",
"model": "Test",
"invalidAttributes": {
"lalala": [
{
"rule": "string",
"message": "`undefined` should be a string (instead of \"null\", which is a object)"
},
{
"rule": "required",
"message": "\"required\" validation rule failed for input: null"
}
]
}
}
Я конечно плохо понимаю что ты хочешь сделать, но если ты хочешь в корне изменить текст то тебе придется ковырять в исходниках и там переводить места где происходит генерация объекта ошибок, но это занятие лишнее и неблагодарное. Если тебе просто удобно получать логи в разобранном виде и на русском — советую просто написать небольшой парсер для этого дела. Лично я для похожей ситуации (удобное ведения логов) использовал xml. за более удобную структуру (Имхо). В особых случаях можно использовать lodash в нем можно разбирать сложные структуры (не для простых отчетов об ошибках). Возможно я просто неправильно понял вопрос, но это те решения которые можно использовать. Если же тебе просто не нравиться читать отчеты на английском, то не повод ли это просто лучше выучить английский?
0
Отчеты меня не волнуют. Мне надо пользователю вывести ошибку — «Вы не заполнили имя», когда пользователь его не заполнил, а в атрибуте name стоит
Сейчас у меня есть service transformValidationMessage, который разбирает этот объект ошибки валидации и заменяет в нем соответствующий message. Выглядит это так.
Модель User:
И потом в колбэке при обработке ошибок:
Затем во view возвращаю измененную таким образом ошибку.
Есть ощущение, что можно сделать лучше, но как — не знаю.
required : true
. Из коробки есть возможность вывести ошибку только на английском языке, что некорректно для русскоязычных пользователей. Надо перевести.Сейчас у меня есть service transformValidationMessage, который разбирает этот объект ошибки валидации и заменяет в нем соответствующий message. Выглядит это так.
Модель User:
module.exports = {
attributes: {
name: {
type: 'string',
required: true,
unique: true
}
},
validationMessages: {
name: {
required: "Вы не заполнили имя."
}
}
};
И потом в колбэке при обработке ошибок:
if (err.ValidationError) {
error = transformValidationMsg(User, err.ValidationError);
}
Затем во view возвращаю измененную таким образом ошибку.
Есть ощущение, что можно сделать лучше, но как — не знаю.
0
видимо я слишком сложно оценил проблему, зачем делать столько телодвижений. jQuery.Validator, простая обработка поля на клиенте. Даже серверная реализация не нужна — хватит простого плагина. А я думал что вы имеете ввиду глобальную обработку объектов логирования ).
0
Sign up to leave a comment.
Особенности использования SailsJS для начинающих (Часть 1)