как всем известно, Windows создает пути с обратной косой чертой, а Unix - с прямой косой чертой. node.js позволяет path.join()
всегда использовать правильную косую черту. Так, например, вместо того, чтобы писать только Unix, 'a/b/c'
вы бы сделали это path.join('a','b','c')
.
Однако кажется, что, несмотря на эту разницу, если вы не нормализуете свои пути (например, используя path.join) и просто записываете пути, такие как a/b/c
node.js, не будет проблем с запуском ваших скриптов в Windows.
Так есть ли польза перезаписи path.join('a','b','c')
более 'a/b/c'
? Оба работают независимо от платформы ...
path.join
позаботится о ненужных разделителях, которые могут возникнуть, если данные пути поступают из неизвестных источников (например, пользовательский ввод, сторонние API и т. д.).Таким образом
path.join('a/','b')
path.join('a/','/b')
,path.join('a','b')
иpath.join('a','/b')
все будет даватьa/b
.Не используя его, вы обычно ожидаете начала и конца соединенных путей, зная, что у них только нет или одна косая черта.
источник
Я использую,
path.join
чтобы гарантировать, что разделители папок находятся в правильных местах, не обязательно, чтобы гарантировать, что он использует прямые и обратные косые черты. Например:Правильно вставит разделитель между www и test
/var/www/test
источник
path.join
было бы в другом вашем ответе здесь stackoverflow.com/questions/9027648/… . Этот ответ привел меня к другому вопросу, на который вы ответили сами :)return baseDir + relativePath + filename;
. Сразу заменил наreturn path.join(baseDir, relativePath, filename);
. Это действительно очень полезно!Короткий ответ:
Все
fs.*
функции (напримерfs.open
, и т . Д.) Обрабатывают путь за вас. Итак, вам не нужно использоватьpath.join
себя и делать свой код неразборчивым.Длинный ответ:
Все
fs.*
функции вызываютpath._makeLong(path)
, которые, в свою очередь, вызываютpath.resolve(path)
специальные регулярные выражения для Windows, которые учитывают обратную\
или прямую косую черту/
. Вы можете убедиться в этом сами, посмотрев их исходный код по адресу:источник