这个npm构建如何工作?

时间:2015-03-05 16:29:15

标签: node.js npm swagger

https://github.com/apigee-127/swagger-converter

我看到了这段代码:

var convert = require('swagger-converter');
var fs = require('fs');
var resourceListing = JSON.parse(fs.readFileSync('/path/to/petstore/index.json').toString());
var apiDeclarations = [ JSON.parse(fs.readFileSync('/path/to/petstore/pet.json').toString()),
JSON.parse(fs.readFileSync('/path/to/petstore/user.json').toString()),
JSON.parse(fs.readFileSync('/path/to/petstore/store.json').toString())
];

var swagger2Document = convert(resourceListing, apiDeclarations);

console.log(JSON.stringify(swagger2Document, null, 2));

我很担心我应该在这里做什么来运行它?我是否启动了节点http服务器?

1 个答案:

答案 0 :(得分:0)

要运行您粘贴的文件,只需将代码保存到script.js这样的文件中即可。然后从命令行(安装了node)运行node script.js。那将运行该文件。以下是它正在做的事情的细分:

var convert = require('swagger-converter');

此行引用您链接到的swagger-converter模块。该模块旨在允许您将swagger文档转换为JSON

var fs = require('fs');

此行引用节点内置文件系统模块(简称fs)。它提供了一个API,用于在脚本运行时与计算机上的文件系统进行交互。

var resourceListing = JSON.parse(fs.readFileSync('/path/to/petstore/index.json').toString());

这一行可以细分为:

var indexContent = fs.readFileSync('/path/to/petstore/index.json');
JSON.parse(indexContent.toString());

readFileSyncindex.json文件的内容作为缓冲区对象返回,通过调用.toString()可轻松将其转换为简单字符串。然后他们将它传递给JSON.parse,它解析字符串并将其转换为一个简单的JavaScript对象。

  有趣的事实:他们可以通过一个简单的var resourceListing = require('/path/to/petstore/index.json');跳过这些步骤。 Node知道如何读取JSON文件并自动将它们转换为JavaScript对象。您只需将路径传递给require

var apiDeclarations = [ JSON.parse(fs.readFileSync('/path/to/petstore/pet.json').toString()),
JSON.parse(fs.readFileSync('/path/to/petstore/user.json').toString()),
JSON.parse(fs.readFileSync('/path/to/petstore/store.json').toString())
];

这段代码与resourceListing的功能相同,只是它根据这些JSON文件创建了三个JavaScript对象的数组。他们也可以在这里使用require来节省一些工作。

然后他们最终使用转换器进行转换,然后将数据记录到运行脚本的终端。

var swagger2Document = convert(resourceListing, apiDeclarations);
console.log(JSON.stringify(swagger2Document, null, 2));

JSON.stringifyJSON.parse相反。 stringify将JavaScript对象转换为JSON字符串,而parse将JSON字符串转换为JavaScript对象。