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

我有nodeJS文件,做一些东西,并保存结果在JSON文件。

 '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}); 

我称节点为:

 $ node Common/BB_validate.js 

有任何想法吗?

为什么使用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)将其转换回对象。