Javascript 为什么在运行jest时,Gitlab CI中有一个TypeError,而机器上没有?

Javascript 为什么在运行jest时,Gitlab CI中有一个TypeError,而机器上没有?,javascript,regex,jestjs,gitlab-ci,Javascript,Regex,Jestjs,Gitlab Ci,我使用以下代码片段从字符串中提取一些信息,这似乎很好: const str=”dialect://user:password@主机:端口/名称”; 常量正则表达式=/([^\:]*)\:\/([^\:]*)\:([^\@]*)\@([^\:]*)\:([^\/]*)\/(*)/ 让[,DB_方言,DB_用户,DB_密码,DB_主机,DB_端口,DB_名称]=regex.exec(str); console.log(DB_方言); console.log(数据库用户); console.log(

我使用以下代码片段从字符串中提取一些信息,这似乎很好:

const str=”dialect://user:password@主机:端口/名称”;
常量正则表达式=/([^\:]*)\:\/([^\:]*)\:([^\@]*)\@([^\:]*)\:([^\/]*)\/(*)/
让[,DB_方言,DB_用户,DB_密码,DB_主机,DB_端口,DB_名称]=regex.exec(str);
console.log(DB_方言);
console.log(数据库用户);
console.log(DB_密码);
console.log(DB_主机);
控制台日志(DB_端口);
console.log(数据库名称)
事实证明,尽管出现了奇怪的错误,
process.env.DATABASE\u URL
是罪魁祸首,但这一说法是正确的:

  • 我在gitignore中的特定于测试的dotenv文件中定义了这个变量
  • 将其从gitignore中删除并推送解决了问题
  • 我仍然不确定为什么我得到了这个错误,而不是
    regex.exec(…)为null
    ,我希望在
    未定义的
    变量上运行regex.exec
事实证明,尽管出现了奇怪的错误,
process.env.DATABASE\u URL
仍然是罪魁祸首,这一说法是正确的:

  • 我在gitignore中的特定于测试的dotenv文件中定义了这个变量
  • 将其从gitignore中删除并推送解决了问题
  • 我仍然不确定为什么我得到了这个错误,而不是
    regex.exec(…)为null
    ,我希望在
    未定义的
    变量上运行regex.exec

这绝对是
process.env.DATABASE\u URL
str
不同。这个错误有点奇怪,但有一段时间你在解构时没有收到非常有用的错误消息。@MinusFour是的,你说得对,我的测试用dotenv文件在我的gitignore中,所以它没有加载env变量,导致了这个错误。这不是我遇到过的最清楚的错误消息。。。如果你想让我接受的话,你可以加上这个作为答案。我只是指出了错误的地方,你提出了解决方案,所以你最好写下它为什么发生以及如何解决的答案。这绝对是
process.env.DATABASE\u URL
str
不同。这个错误有点奇怪,但有一段时间你在解构时没有收到非常有用的错误消息。@MinusFour是的,你说得对,我的测试用dotenv文件在我的gitignore中,所以它没有加载env变量,导致了这个错误。这不是我遇到过的最清楚的错误消息。。。如果你想让我接受的话,你可以加上这个作为答案。我只是指出了错误的地方,你提出了解决方案,所以你最好写下为什么会发生以及你是如何解决的答案。