我想从某人的github存储库中的文本文件中获取数据。我可以使用nodejs(就像在octokit.js的帮助下通过api调用(来实现这一点吗。
您可以尝试使用节点提取并从原始文件中获取文本。
例如:
const fetch = require('node-fetch');
const getNames = () => {
fetch('https://raw.githubusercontent.com/jeanphorn/wordlist/master/usernames.txt')
.then(res => res.text()).then(data => {
console.log(data);
}).catch(err => console.log('fetch error', err));
};
或者你可以用这种方式试试。
const fetch = require('node-fetch');
const getNames = async() => {
try {
const names = await fetch('https://raw.githubusercontent.com/jeanphorn/wordlist/master/usernames.txt');
const textData = await names.text();
return textData;
} catch (err) {
console.log('fetch error', err);
}
};
(async () => {
const getText = await getNames();
console.log(getText)
})();
如果你不确定如何获得原始链接。转到github项目,点击你想从中获取文本的文本文件,然后在文本的右上角应该有一个名为RAW的按钮。
使用Octokit,您可以使用以下方法获取文件的内容:
octokit.rest.repos.getContent({
owner,
repo,
path,
});
参考:https://octokit.github.io/rest.js/v18#repos-获取内容
使用superface sdk可以非常容易地读取文本文件内容,不仅可以从github读取,还可以从bitbucket和gitlab读取。例如,让我们从中检索README.md文件https://github.com/superfaceai/one-sdk-js
npm install @superfaceai/one-sdk
npx @superfaceai/cli install vcs/single-file-content
const { SuperfaceClient } = require('@superfaceai/one-sdk');
const sdk = new SuperfaceClient();
async function run() {
// Load the installed profile
const profile = await sdk.getProfile('vcs/single-file-content');
// Use the profile
const result = await profile
.getUseCase('SingleFileContent')
.perform({
owner: 'superfaceai',
repo: 'one-sdk-js',
path: '/README.md',
ref: 'c5e4d76'
});
return result.unwrap();
}
run();