首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在nodejs中将js对象写入文件(包括方法)?

在nodejs中将js对象写入文件(包括方法)?
EN

Stack Overflow用户
提问于 2012-06-30 16:29:57
回答 3查看 7.4K关注 0票数 9

我明白了如何将对象写入文件,如下所述:How can I save objects to files in Node.js?。但是,有没有一种方法可以获取对象并以允许我将对象重新加载到内存中的方式将其写入内存?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-30 17:42:45

正如@AnthonySottile之前所说,这可能是非常危险的,我不确定有没有一个好的用例,但为了好玩,你需要编写你自己的递归序列化程序。如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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();
}

这可以处理大多数类型,但总会有奇怪的事情弄乱它,所以我不会在生产中使用它。然后反序列化就像下面这样简单:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
eval('var test = ' + dump_to_string(obj))
票数 7
EN

Stack Overflow用户

发布于 2014-06-22 05:58:17

这个问题由来已久,但我在任何地方都找不到简单的解决方案来解决JavaScript中的有效序列化问题。

可以使用BSON (MongoDB内部对象表示),它使用二进制格式来表示内存中的对象。

我找不到文档的链接,但code is well documented和我想出了这样的东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fs = require 'fs'
bson = require('bson').BSONPure.BSON

obj = {
  string: "test",
  func: (s) ->
    console.log s
}

fs.writeFile 'test.txt', bson.serialize(obj, false, false, true), (err) ->
  return console.log("Err : #{err}") if err
  fs.readFile 'test.txt', (err, file) ->
    return console.log("Err : #{err}") if err
    deserialized = bson.deserialize file, evalFunctions: true
    deserialized.func deserialized.string // Outputs 'text', as expected

它是coffee-script,但代码很简单,每个人都能理解。

票数 2
EN

Stack Overflow用户

发布于 2012-06-30 18:01:22

我最近编写了shoveJS:https://shovemedia.github.io/shovejs/来处理这类事情。YMMV --我还没有在Node上尝试过。

它将类型化的对象结构转换为JSON (然后将其保存到磁盘),并可以将该结构膨胀回类型化的对象,包括适当的对象->对象引用等。系统只是期望在序列化期间可用的已注册的Model / Factory类在反序列化期间也可用。

提前为没有张贴一些简单的例子而道歉。

编辑:这项技术是对Rob W在下面的评论中提到的内容的增强

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11275732

复制
相关文章
nodejs写入json文件_json文件可以删除吗
哈喽!nodejs的文件系统,接触过node的对node的文件系统肯定不会陌生,这两天我就在思考一个问题,我是否可以在本地操作我的本地json文件,这样一个本地的文本数据库就有了,如果是便签之类,记录的软件,我完全可以不用连后台的数据库,我可以自己操作本地的json文件,自己用node写后台,答案是肯定的,下面我们就一起来实现一下吧,对本地json文件的增、删、改、查
全栈程序员站长
2022/11/04
2.9K0
nodejs写入json文件_json文件可以删除吗
nodejs使用readline逐行读取和写入文件
今天遇到一个小的需求,就是要根据Excel中的几列数据生成多条SQL插入脚本,类似于下面input.txt文件这样:
ccf19881030
2020/09/06
4.3K0
js写入文件的方式 转
度娘找到,在谷歌等浏览器下都可使用 Html内容: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title>
晓歌
2018/08/15
3.7K0
【Node.JS】写入文件内容
fs.writeFile(filepath,data[,options],callback)
坚毅的小解同志的前端社区
2022/11/28
5.1K0
【Node.JS】写入文件内容
如何在Node.js中读取和写入JSON对象到文件
本文翻译自How to read and write a JSON object to a file in Node.js
ccf19881030
2020/10/28
22.1K0
js对象判断方法
// 判断对象的方法 let obj6 = { a: 1, b: 2 }; // 1. typeof console.log(typeof obj6 === "object"); // 2. instanceof console.log(obj6 instanceof Object === true); // 3. constructor console.log(obj6.constructor === Object); // 4. Object.prototype.toString.call consol
蓓蕾心晴
2022/08/19
12.9K0
js对象拷贝方法
参考阮一峰文档: https://es6.ruanyifeng.com/#docs/object-methods#Object-assign
蓓蕾心晴
2022/08/23
2.4K0
文件写入的6种方法
在 Java 中操作文件的方法本质上只有两种:字符流和字节流,而字节流和字符流的实现类又有很多,因此在文件写入时我们就可以选择各种各样的类来实现。我们本文就来盘点一下这些方法,顺便测试一下它们性能,以便为我们选出最优的写入方法。 在正式开始之前,我们先来了解几个基本的概念:流、字节流和字符流的定义与区别。 0.什么是流? Java 中的“流”是一种抽象的概念,也是一种比喻,就好比水流一样,水流是从一端流向另一端的,而在 Java 中的“水流”就是数据,数据会从一端“流向”另一端。 根据流的方向性,我们可以将流分为输入流和输出流,当程序需要从数据源中读入数据的时候就会开启一个输入流,相反,写出数据到某个数据源目的地的时候也会开启一个输出流,数据源可以是文件、内存或者网络等。 1.什么是字节流? 字节流的基本单位为字节(Byte),一个字节通常为 8 位,它是用来处理二进制(数据)的。字节流有两个基类:InputStream(输入字节流)和 OutputStream(输出字节流)。 常用字节流的继承关系图如下图所示:
崔笑颜
2020/12/23
6550
Python中将变量按行写入txt文本中
在'w'写入模式下,当我们下次写入变量时,会覆盖原本txt文件的内容,这肯定不是我们想要的。TXT有一个追加模式'a',可以实现多次写入:
py3study
2020/01/10
7.5K0
Python中将变量按行写入txt文本中
在HashMap中将可变对象用作Key,需要注意什么?
本文中我们将会讨论在Java HashMap中将可变对象用作Key。所有的Java程序员可能都在自己的编程经历中多次用过HashMap。那什么是HashMap呢?
九州暮云
2019/08/21
2.6K0
分享 5 种在 JS 中访问对象属性的方法
点属性访问器是在 JavaScript 中访问对象属性的最常见和最直接的方式。它使用点 (.) 表示法来访问对象的特定属性。
前端达人
2023/08/31
1.9K0
分享 5 种在 JS 中访问对象属性的方法
JS对象的遍历方法
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179080.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
9.1K0
js 对象属性过滤方法
数组使用fliter 函数是可以过滤掉的,但是对象的属性怎么过滤呢? 剔除少数属性,要多数属性 有时候需要剔除少数属性,留下大多数。类似于TS的omit 例子: let person = { name:"jack chen", age:54, address:'hongkong' } let {name,...xiaohong}=person console.log(xiaohong); 运行结果: 选择少数属性 有时候需要选中少数属性。类似于TS的pick 例子: let person
星宇大前端
2022/10/05
9.4K0
js 对象属性过滤方法
对象存储 Node.js SDK cos-nodejs-sdk-v5 Typescript 声明文件
用到腾讯云对象存储,使用Node.js SDK cos-nodejs-sdk-v5,没有 typescript 的声明文件,自己写了一个。
苦少
2020/05/11
2K0
【说站】NodeJS检测文件的方法
2、star()主要接收两个参数第一个是要检测的文件,第二个是一个回调函数,这个回调函数有两个参数。
很酷的站长
2022/11/24
5970
python读取/写入配置文件ini方法
在写测试脚本时,经常有一些需要变动的数据,可以单独放在ini文件里,然后读取传递给
py3study
2020/01/08
9260
Java文件写入的6种方法
写程序时经常会碰到读写文件的场景,在Java中操作文件的方法本质上只有两种:字符流和字节流,而他们的实现类又有很多,因此,有时候用起来,就会比较乱。
bisal
2021/11/01
2.5K0
Java文件写入的6种方法
在Linux中将php-fpm配置成服务的方法
php-fpm.pid 目录必须指向:/usr/local/php/var/run/php-fpm.pid
魏杰
2022/12/23
4430
点击加载更多

相似问题

在nodejs中将数据写入json文件

12

在nodeJS中将结果写入csv文件

30

NodeJS:将js对象写入文件并进行导出

125

在nodejs中将数组写入CSV

173

在nodejs中包括对象

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文