Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Геттеры и сеттеры JavaScript / 7 сообщений из 7, страница 1 из 1
19.11.2012, 01:46:55
    #38043526
Няша ррр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Геттеры и сеттеры JavaScript
Это код модуля cookie.js только что мною законченного.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
var http = require('http');
var qs = require('querystring');

(function() {
    // ServerRequest является объектом IncomingMessage
    var rq = http.IncomingMessage.prototype;
    var rs = http.ServerResponse.prototype;
    
    // меня интересует именно этот фрагмент кода, можно ли его переписать? меня смущает
    // что я засираю лишними свойствами обьект ServerRequest. про геттеры и сеттеры в yoba-скрипт
    // прочитал только сегодня, поэтому могу делать что-нибудь не так.
    // до этого был метод request.getCookie(name)
    Object.defineProperty(rq, 'cookie', {      
        get: function() { 
            if (this._cookie === undefined) {
                // куки парсятся только один раз при первом обращении к request.cookies
                this._cookie = qs.parse(this.headers['cookie'], '; ');
            }
            
            return this._cookie;
        }
    });
    
    rs.setCookie = function(name, value, expires, path, domain, secure, httponly) {       
        var cookie = this.getHeader('set-cookie');
        
        if (cookie === undefined) {
            cookie = [];
        }
        else if (typeof cookie == 'string') {
            cookie = [].concat(cookie);
        }
        
        cookie.push(name + '=' + qs.escape(value) +
        (expires === undefined ? '' : '; Expires=' + new Date(expires).toUTCString()) +
        (path ? '; Path=' + path : '') + (domain ? '; Domain=' + domain : '') +
        (secure ? '; Secure' : '') + (httponly ? '; HttpOnly' : ''));
        this.setHeader('set-cookie', cookie);
    }
    
    rs.removeCookie = function(name) {
        this.setCookie(name, '', 0);
    }
})();
...
Рейтинг: 0 / 0
19.11.2012, 02:05:10
    #38043536
Няша ррр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Геттеры и сеттеры JavaScript
Кстати как правильно во множественном числе cookie или cookies?
...
Рейтинг: 0 / 0
19.11.2012, 02:16:05
    #38043538
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Геттеры и сеттеры JavaScript
Печенье - "cookie", печенья (более одного печенька) - "cоokies".
Как компьютерный термин, слово "cookie", по большому счету, не применяется, используется термин "cookies". Применение единственного числа обычно сопряжено с определением элемента массива, определяющего cookies.

P.S. Даже в статье про "куки" в Википедии, на мой взгляд, написана билеберда. По произношению "куки" вроде как происходит от единственного числа, хотя в русском сранслите убычно говорят "кука" (ед.) и "куки" (мн.). Более того, автор ниже, говоря сначала "куки" - "он/оно", потом говорит "куки" - "они".

P.P.S. По сути не отвечаю, так как по идеологическим соображениям устанавливаю куки в response сервера, определяя их на серверной стороне. Естественно, по реализации это не принципиально, но такой "пунктик" есть - не ставить их на клиенте.
...
Рейтинг: 0 / 0
19.11.2012, 02:29:09
    #38043542
Няша ррр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Геттеры и сеттеры JavaScript
IDVsbruck, ок cookies переименовал. тут и так куки в response ставятся, по-другому же нельзя.
...
Рейтинг: 0 / 0
19.11.2012, 02:29:29
    #38043543
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Геттеры и сеттеры JavaScript
IDVsbruckПо сути не отвечаю, так как по идеологическим соображениям устанавливаю куки в response сервера, определяя их на серверной стороне. Естественно, по реализации это не принципиально, но такой "пунктик" есть - не ставить их на клиенте.вроде как приведенный код и есть серверная сторона - сильно похоже на Node

А насчет клиентской работы с куками - в принципе, она теперь не слишком актуальна, т.к. localStorage есть даже в ИЕ8 (а в 7 какой-то заменитель, на 64 кб)
...
Рейтинг: 0 / 0
19.11.2012, 02:31:26
    #38043544
Няша ррр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Геттеры и сеттеры JavaScript
IDVsbruck, это node.js серверный javascript
...
Рейтинг: 0 / 0
19.11.2012, 03:07:40
    #38043555
Няша ррр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Геттеры и сеттеры JavaScript
Код: javascript
1.
2.
3.
4.
5.
6.
7.
rq.cookies; // первый раз обратились куки спарсили
rq.cookies = {}; // переопределяем
delete rq.cookies; // пробуем удалить
console.log(rq.cookies); // { bar: 'Bar' } свойство нельзя ни изменить ни удалить
rs.setHeader('Content-type', 'text/html; charset=utf-8'); 
rs.setCookie('bar', 'Bar', new Date().getTime() + 15 * MINUTE);
rs.end('Hello world');
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Геттеры и сеттеры JavaScript / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]