recherche

Maison  >  Questions et réponses  >  le corps du texte

node.js - À propos des cookies dans Node

Voici ce qui s'est passé : je n'ai pas compris une section du code que le patron a perdu aujourd'hui, et je n'ai eu la honte de demander à personne, j'ai donc dû être sans vergogne et demander à tout le monde :

router.post('/my_single_article', function(req, res, next) {
    var request = require('./utils/cookie-request').init(req,global.host);
     request.post(global.config.api('my_single_article'),
         {
             form: req.body,
             json:false
         },
         function(error, response, body){
             var result = JSON.parse(body);
             console.log(result+'12324');
                         console.log(global.host);
             res.render('tpl/my_single_article_list',
             {
                   page:result.data,
             });
         }
     );
 });

Je ne comprends pas très bien cette phrase

var request = require('./utils/cookie-request').init(req,global.host);

Le bloc de demande de cookie cité est le suivant :

var request = require('request');
var format = require("string-template");

exports.init = function(req, domain){
    // 保持与请求接口的session一致
    var url = domain || "http://album.laifuzi.cn";
    
    var j = request.jar();
    if(req && req.cookies) {
        for(x in req.cookies){
            var cookie = request.cookie(format('{0}={1}', x, req.cookies[x]));
            j.setCookie(cookie, url);
        }
    }
    return request.defaults({jar:j});
};

S'il vous plaît, donnez-moi quelques conseils de tous les grands dieux, s'il vous plaît

PHP中文网PHP中文网2872 Il y a quelques jours532

répondre à tous(3)je répondrai

  • 天蓬老师

    天蓬老师2017-05-16 13:33:20

    var cookie = request.cookie(format('{0}={1}', x, req.cookies[x]));

    Vous ne comprenez pas ce paragraphe ?
    format('{0}={1}={2}',1,2,3) => 1=2=3, juste un formatage

    répondre
    0
  • 某草草

    某草草2017-05-16 13:33:20

    var request = require('./utils/cookie-request').init(req,global.host);
    // 等价于:
    var request = require('./utils/cookie-request');
    request.init(req,global.host);
    // req和global.host是cookie-request中init的两个参数,req=>req ,global.host=>domain
    exports.init = function(req, domain){
        // 保持与请求接口的session一致
        var url = domain || "http://album.laifuzi.cn";
        
        var j = request.jar();
        if(req && req.cookies) {
            for(x in req.cookies){
                var cookie = request.cookie(format('{0}={1}', x, req.cookies[x]));
                j.setCookie(cookie, url);
            }
        }
        return request.defaults({jar:j});
    };
    

    répondre
    0
  • 高洛峰

    高洛峰2017-05-16 13:33:20

    var request = require('./utils/cookie-request').init(req,global.host);
    // 等价于:
    var request = require('./utils/cookie-request');
    request = request.init(req,global.host);
    // exports作为commonJS的一种用法,从而可以在别的文件中require这个方法
    exports.init = function(req, domain){
        // 保持与请求接口的session一致
        var url = domain || "http://album.laifuzi.cn";
        
        var j = request.jar();
        //存在req,并且req里面存在cookies
        if(req && req.cookies) {
        遍历req.cookies的属性
            for(x in req.cookies){
            // 这个就是format,楼上说得都没错,cookie的形式一般就是key=value
                var cookie = request.cookie(format('{0}={1}', x, req.cookies[x]));
                j.setCookie(cookie, url);
            }
        }
        return request.defaults({jar:j});
    };

    répondre
    0
  • Annulerrépondre