Модуль Javscript fs: куда записывается вывод?

Я использую JS-модуль файловой системы fs для записи в файл. Я хочу, чтобы этот файл был в папке ~/Desktop, поэтому я делаю так:

var fs = require('fs');
let a = "text"
fs.writeFile('~/Desktop/output.txt', a, () => {})

Это работает без ошибок, но я не вижу файл output.txt на своем рабочем столе или где-либо в моей системе. Он отлично работает, когда я просто делаю output.txt вместо ~/Desktop/output.txt; он сохраняет вывод в файле output.txt в моем текущем каталоге.

Кто-нибудь знает, что здесь происходит?


person gkeenley    schedule 18.02.2020    source источник
comment
Я не думаю, что nodejs понимает ~ (поправьте меня, если я ошибаюсь), но, как вы отметили, вам нужно использовать абсолютный путь. stackoverflow .com/questions/9080085/ вы можете использовать это, чтобы получить домашний каталог   -  person Sterling Archer    schedule 18.02.2020
comment
Благодаря обоим ^^ это работает. Так же, как и ответ ниже с расширением-тильдой.   -  person gkeenley    schedule 18.02.2020


Ответы (1)


Node не расширяет специфичную для bash тильду («~») до вашего домашнего каталога.

Укажите полный путь или используйте пакет, например expand-tilde.

person Andy Ray    schedule 18.02.2020