微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 将js对象写入nodejs中的文件(包括方法)?

我看到如何将对象写入文件,如下所述: How can I save objects to files in Node.js?但有没有办法获取对象并以允许我将对象重新加载到内存中的方式编写它,包括方法

解决方法

正如@AnthonySottile之前所说,这可能是非常危险的,我不确定它是否有一个很好的用例,但只是为了踢和咯咯,你需要编写自己的递归序列化器.像这样的东西:
var toString = Object.prototype.toString;

function dump_object(obj) {
    var buff,prop;
    buff = [];
    for (prop in obj) {
        buff.push(dump_to_string(prop) + ': ' + dump_to_string(obj[prop]))
    }
    return '{' + buff.join(',') + '}';
}

function dump_array(arr) {
    var buff,i,len;
    buff = [];
    for (i=0,len=arr.length; i<len; i++) {
        buff.push(dump_to_string(arr[i]));
    }
    return '[' + buff.join(',') + ']';
}

function dump_to_string(obj) {
    if (toString.call(obj) == '[object Function]') {
        return obj.toString();
    } else if (toString.call(obj) == '[object Array]') {
        return dump_array(obj);
    } else if (toString.call(obj) == '[object String]') {
        return '"' + obj.replace('"','\\"') + '"';
    } else if (obj === Object(obj)) {
        return dump_object(obj);
    }
    return obj.toString();
}

这将处理大多数类型,但总有一个奇怪的球混乱它的机会所以我不会在生产中使用它.之后反序列化就像下面这样简单:

eval('var test = ' + dump_to_string(obj))

原文地址:https://www.jb51.cc/js/157542.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐