Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
代码无法在Node.JS中输出错误或异常_Node.js_Nodegit - Fatal编程技术网

代码无法在Node.JS中输出错误或异常

代码无法在Node.JS中输出错误或异常,node.js,nodegit,Node.js,Nodegit,我正在使用一个名为GitNode的Node.JS库。我认为这并不重要,但基本上它是Node.JS中git命令的API 我有一段代码,其目的是在现有存储库中创建一个新分支。运行代码后,我知道它没有创建存储库,也知道它工作不正常 这是我的全部代码: var Git = require("nodegit"); var getMostRecentCommit = function(repository) { return repository.getBranchCommit("master");

我正在使用一个名为GitNode的Node.JS库。我认为这并不重要,但基本上它是Node.JS中git命令的API

我有一段代码,其目的是在现有存储库中创建一个新分支。运行代码后,我知道它没有创建存储库,也知道它工作不正常

这是我的全部代码:

var Git = require("nodegit");

var getMostRecentCommit = function(repository) {
  return repository.getBranchCommit("master");
};

var makeBranch = function(respository) {
  console.log("in here1")
  repository.createBranch("tester", getMostRecentCommit(repository)).then(
      function(reference) {
           console.log("good")},               // if it works
      function(reasonForFailure) {
           console.log("bad_error")})          // createBranch has error case
      .catch(function(reasonForFailure) {
           console.log("bad_catch")});         // if the error function fails, I also have a catch statement
};


Git.Repository.open("../test_repo")
  .then(makeBranch);
我放了很多catch语句,希望能找到我的错误。但我似乎什么都不能输出。短语“错误”或“错误捕获”输出都不正确

我知道代码被破坏了,createBranch无法工作。我测试了一些应该在调用
repository.createBranch
后运行的代码,但它从未在调用createBranch之前的任何东西都将运行的地方运行。这表明CreateBranch是问题所在

那么为什么我的错误没有被发现呢

编辑


我已经修复了代码并输出了错误(请参见下面的答案),但我仍然想知道为什么我的其他异常/错误语句无法正常工作。

因此,多亏了

我只需要在我的Repository.open()函数中添加一个catch语句

var makeBranch = function(respository) {
  console.log("in here1")
  repository.createBranch("tester", getMostRecentCommit(repository)).then(
      function(reference) {
           console.log("good")},               
      function(reasonForFailure) {
           console.log("bad_error")})          
      .catch(function(reasonForFailure) {
           console.log("bad_catch")});        
};


Git.Repository.open("../test_repo")
  .then(makeBranch).catch(
  function(reasonForFailure) {console.log("bad")}); // This Works
如果有人好奇的话,结果发现我传递的是变量
respository
,而不是
repository
:p

这将输出
bad
。那很好。我仍然不太明白为什么这样做有效,但我的另一个catch语句没有。我仍在寻找一个好的答案或解释