调用nodeJS将数据保存在文件中但获取空内容

时间:2017-06-15 17:57:35

标签: node.js promise

我有D文件可以执行一些操作并将结果保存到JSON文件中。

nodeJS

但由于某种原因,我得到空文件。

但是如果我使用写文件同步:

'use strict';

var Promise = require('promise');
var jsonfile = require('jsonfile'); //npm install --save jsonfile

// ...

function writeFile(filename, obj) {
    return new Promise(function (resolve, reject) {
        jsonfile.writeFile(filename, obj, {spaces: 5}, function (err, obj) {
            if (err) {
                reject(err);
            } else {
                resolve();
            }
        });
    });
}

 writeFile("test.json",{a:"xxxx"}).then(function (results) {

  })

我将节点称为:

jsonfile.writeFileSync(filename, obj, {spaces: 5});

任何想法?

1 个答案:

答案 0 :(得分:3)

为什么要使用jsonfile?我的意思是,为什么不使用类似下面的内容?

var fs = require("fs");
function writeFile(filename, obj) {
    return new Promise(function (resolve, reject) {
        fs.writeFile(filename, JSON.stringify(obj, undefined, 5), function (err, obj) {
            if (err) {
                return reject(err);
            }
            resolve();
        });
    });
}

JSON.stringify会将对象转换为JSON(用于存储在文件中),而无需导入其他库。阅读文件时,您只需拨打JSON.parse(readData)即可将其转换回对象。