- PVSM.RU - https://www.pvsm.ru -
Invisible.js [1] — библиотека, позволяющая использовать одни и те же модели данных как на клиенте, так и на сервере. На сервере работает поверх express.js на клиент отдается через browserify [2].
Что есть:
Пример описания модели (будет доступно и на клиенте и на сервере):
Invisible = require("invisible");
crypto = require("crypto");
_s = require("underscore.string");
function Person(firstName, lastName, email){
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
}
Person.prototype.fullName = function(){
return this.firstName + ' ' + this.lastName;
}
Person.prototype.getAvatarUrl = function(){
cleanMail = _s.trim(this.email).toLowerCase();
hash = crypto.createHash("md5").update(cleanMail).digest("hex");
return "http://www.gravatar.com/avatar/" + hash;
}
module.exports = Invisible.createModel("Person", Person);
Использование на сервере:
Invisible = require("invisible")
john = new Invisible.Person("John", "Doe", "john.doe@mail.com");
john.fullName(); //John Doe
Использование на клиенте:
<script src="invisible.js"></script>
<script>
jane = new Invisible.Person("Jane", "Doe", "jane.doe@mail.com");
alert(jane.fullName()); //Jane Doe
</script>
Подробно можно посмотреть на github-страничке [3].
Автор: zag2art
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/51040
Ссылки в тексте:
[1] Invisible.js: http://invisiblejs.github.io/
[2] browserify: https://github.com/substack/node-browserify
[3] github-страничке: https://github.com/invisiblejs/invisible
[4] Источник: http://habrahabr.ru/post/206526/
Нажмите здесь для печати.