Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

fs 如何读取 js 模块的注释

$
0
0

需求

想解析一份 js 文件,把 require 的 js 对象打印出来。但是发现并不能获取到注释信息,毕竟是注释 = =

源码

main.js

let fs = require('fs');
const PATH = './input'; // 目录

//  遍历目录得到文件信息
function walk (path, callback) {
    let files = fs.readdirSync(path);

    files.forEach(function (file) {
        if (fs.statSync(path + '/' + file).isFile()) {
            callback(path + '/' + file);
        }
    });
}

// 运行
walk(PATH, (file) => {
    let map = require(file);
    let keys = Object.keys(map);

    keys.forEach((key) => {
        fs.writeFileSync('./output/output.txt', JSON.stringify(map[key], null, '\t'));
    });
});

input/test.js

module.exports = {
    '/api/massEmail/pcGame/getInfo': {// 获取邮件详情
        Type: 'GET', // 请求类型
        Request: {
            Id: 1 // 邮件 Id
        },
        Response: {
            Data: {
                Id: 1, // Id
                Name: 'Roam' // Name
            },
            Status: true, // 状态
            Message: 'Success' // 返回信息
        }
    }
};

最终生成:

  • output/output.text
{
	"Type": "GET",
	"Request": {
		"Id": 1
	},
	"Response": {
		"Data": {
			"Id": 1,
			"Name": "Roam"
		},
		"Status": true,
		"Message": "Success"
	}
}

求助

不知道各位有什么思路没,如果读取文件,涉及的正则之类的解析是否会很繁杂,或者有更好的方法?


Viewing all articles
Browse latest Browse all 14821

Trending Articles