writeFileSync не вызывает - PullRequest
       60

writeFileSync не вызывает

0 голосов
/ 05 октября 2018

Я использую функцию writeFileSync для локальной записи файла, файл записывается, однако функция обратного вызова никогда не вызывается.

Я немного погуглил, у некоторых других постов проблема в том, что это либо 1) передача содержимого пошла не так, либо 2) наличие двух функций записи одновременно.

Моя проблема в том, чтов моем коде есть несколько других мест, где используется writeFileSync, но они находятся на разных маршрутах (не уверен, что это правильная терминология, localhost: port # / differentroutes <- что-то вроде этого).Я тестирую только по собственному маршруту, поэтому эти функции записи даже не должны вызываться. </p>

Вот мой код:

if(!fs.existsSync(dir)){
        fs.mkdirSync(dir)
    }

//content is just a string var I swear it's just a string

    fs.writeFileSync('./pages/SubmissionProcess.html',content,function(err){
        if(err){
            throw err
        }else {
            console.log("YES")
        }
    })

Я никогда не вижу ни этого "ДА", ни ошибки в моемконсоль, хотя файл уже написан ....

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Все синхронные методы throw вместо передачи ошибки в обратный вызов.

try {
    fs.writeFileSync('./pages/SubmissionProcess.html', content);
    console.log('YES');
} catch (e) {
    console.error(e);
}
0 голосов
/ 05 октября 2018

Запись файла синхронизации не требует обратного вызова: D

Ознакомьтесь с документацией:

https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options

Параметры: (путь, данные,options)

Если вы хотите проверить, действительно ли файл записан, вы можете прочитать синхронизацию файла после его записи или проверить, когда файл обновлялся в последний раз.В противном случае вам следует попробовать использовать асинхронный подход.

...