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 回答