1

NodeGit を使用して HEAD 参照にアクセスしようとしています。私はnodejsを初めて使用するので、これは単に何かを見逃したためかもしれません。次のコードは head を見つけますが、常に を返します{}。私が間違っているのかわかりません。

コードは、このファイルの外で を呼び出して開始しますgetHead(res)

var NodeGit = require("nodegit");
var pathToRepo = require("path").resolve("C:\\Users\\Betsegaw\\Desktop\\windowwalker");

function _getHead() {
    var head = new Promise(
        function (resolve, reject){
            NodeGit.Repository.open(pathToRepo).then(function (repo) {
                return repo.head();
            }).then(function (reference) {
                    console.log("Found head " + JSON.stringify(reference));
                    resolve(reference);
                });
        });
    return head;
}

module.exports = {
    getHEAD: function (res) {
        _getHead().then(function(head) {
            console.log(head);
            res.send(head);
        });
    }               
};

編集:サンプルコードのマイナーなタイプミス

4

1 に答える 1

0

現在、多くのクラスの NodeGit では、ほとんどの値がプロパティではなく関数に返されます。これを変更しようとしていますが、現在、ライブラリで返されたほとんどの値をログアウトすると、今見たものが得られます。

そうは言っても、コードは実際に機能しています。少し再フォーマットして、 Betsegawが指摘したアンチパターンを取り除きましょう。

var NodeGit = require("nodegit");
var pathToRepo = require("path").resolve("C:\\Users\\Betsegaw\\Desktop\\windowwalker");

module.exports = {
    getHEAD: function (res) {
        NodeGit.Repository.open(pathToRepo).then(function (repo) {
            return repo.head();
        }).then(function (reference) {
            res.send({
                name: reference.name(),
                target: reference.target()
            });
        });
    }               
};

これにより、探している出力が得られるはずです。返されたものを使って何ができるかについては、リファレンスを参照してください。reference

于 2015-03-23T16:41:44.137 に答える