Node.js: process.argv против process.ARGV - PullRequest
11 голосов
/ 29 апреля 2011

Я заметил, что Node определяет и process.argv, и process.ARGV (с большой буквы).Последнее не упоминается в документации и, во всех случаях, с которыми я сталкивался до сих пор, является одним и тем же объектом.

Является ли ARGV просто историческим пережитком или у него есть цель?

Ответы [ 2 ]

10 голосов
/ 06 февраля 2013

process.ARGV было полностью удалено с v0.5.10.

4 голосов
/ 29 апреля 2011

Они идентичны:

node.cc

// process.argv
Local<Array> arguments = Array::New(argc - option_end_index + 1);
arguments->Set(Integer::New(0), String::New(argv[0]));
for (j = 1, i = option_end_index; i < argc; j++, i++) {
  Local<String> arg = String::New(argv[i]);
  arguments->Set(Integer::New(j), arg);
}
// assign it
process->Set(String::NewSymbol("ARGV"), arguments);
process->Set(String::NewSymbol("argv"), arguments);

Редактировать (на основе дополнительного вопроса):

Есть только один человек, который может сказать вам, что для уверен (автор) - вы можете найти его в IRC (irc.freenode.net #node.js).

Просматривая другие символы, я думаю, что это было добавлено для согласованности - argv и env, кажется, единственные два, которые имеют версии как в нижнем, так и в верхнем регистре. Однако ENV отличается незначительно от env. Может быть, автор подумал, что argv и ARGV могут отличаться так же, как env и ENV?

...