0

我做了一些 i/o 函数,比如加载 yaml 配置文件,回调函数将返回 yaml 的 JSON 格式。没有回调的可能返回值如下?

var u=require('./my_util');
var oData=u.yaml2json('path/to/yaml');

my_util.js

module.exports={
    yaml2json : function(path, callback){
    env = process.env.NODE_ENV || 'development';
    var fs    = require('fs'),
        yaml  = require('js-yaml');

    data=fs.readFileSync(path);
    try {
      yaml.loadAll(data, function (doc) {
        callback(null, doc[env]);
      });
    } catch(e) {
      console.log(e);
    }
  }
};

回调用法

var u=require('./my_util');
u.yaml2json('path/to/yaml', function(err, oData){
  // do something
});
4

1 回答 1

2

从js-yaml github 页面尝试以下示例...

var yaml = require('js-yaml');

// pass the string
fs.readFile('/home/ixti/example.yml', 'utf8', function (err, data) {
  if (err) {
    // handle error
    return;
  }
  try {
    console.log( yaml.load(data) );
  } catch(e) {
    console.log(e);
  }
});

你可以把它改成...

var yaml = require('js-yaml');

// pass the string
var data = fs.readFileSync('/home/ixti/example.yml');
try {
  console.log( yaml.load(data) );
} catch(e) {
  console.log(e);
}

PS。自己没有测试过。

于 2012-07-14T10:58:33.843 回答