【问题标题】:Convert client-side javascript using document.cookie into node module使用 document.cookie 将客户端 javascript 转换为节点模块
【发布时间】:2015-03-21 07:12:24
【问题描述】:

如何在节点中使用document.cookie?请在回复前进一步阅读。

我在节点模块上的尝试:

var myModule = module.exports = function myModule(options) {
}

moduleName.getCookie = function(cname) {
    'use strict';
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
};

moduleName.setCookie = function(cname, cvalue, exdays) {

    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
};

index.js:

我尝试在我的 index.js 中使用 jsdom 模块

var jsdom = require('jsdom');
var window = jsdom.jsdom().parentWindow;
var Cookies = require('cookies-js')(window);

mymodule.js:

myModule.prototype.getCookie = function(cname) {
    Cookies.get(cname);
};

myModule.prototype.setCookie = function(cname, cvalue) {
    Cookies.set(cname, cvalue);
};

但我不确定如何将 index.js 中引用的 Cookies 传递给 foo.js 中的 myModule

【问题讨论】:

    标签: javascript node.js cookies commonjs


    【解决方案1】:

    我不太确定我是否完全理解了这个问题,但你为什么不能提出来

    var Cookies = require('cookies-js')(window);
    myModule.prototype.getCookie = function(cname) {
        Cookies.get(cname);
    };
    
    myModule.prototype.setCookie = function(cname, cvalue) {
        Cookies.set(cname, cvalue);
    };
    

    进入 foo.js?

    【讨论】:

    • 我正在尝试编写一个节点模块。在模块本身中添加您的需求是否完全正常?你能给我举个例子吗?
    • 我更新了示例。是的,这是完全正常的。实际上,这是由各个模块自己管理依赖项的好处之一,消费者无需担心它们。
    猜你喜欢
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 2017-06-26
    • 2016-07-13
    • 2018-04-27
    • 1970-01-01
    相关资源
    最近更新 更多