Node.js + Express не записывает в файл с помощью FS - PullRequest
0 голосов
/ 15 мая 2018

У меня есть файл, в который я пытаюсь написать сообщение. В настоящее время FS не делает ошибок и не записывает в файл. Однако, если взять тот же код из развернутой сборки и запустить его локально, он работает. Я даже держал постоянный путь к файлу, поскольку сначала он выдавал no permissions error. Я гарантировал, что этот файл записан в один и тот же каталог, чтобы каждый процесс Filewrite Stream просматривал один и тот же каталог и файл. Локальная сборка:

var fs = require('fs');
    const path = require('path');
    var user_name = 'Password';
    var password = 'test';
    var errSTR = ""
    fs.writeFile('C:\\hi.txt', 'Content to write', { flag: 'w' }, function(err) {
        if (err) 
            return console.error(err); 
      fs.readFile('C:\\hi.txt', 'utf-8', function (err, data) {
        if (err)
            return console.error(err);
        console.log(data);
      });
    });

Развернутая сборка:

app.route('/test')
    .get(function(req, res) {
      res.send('GET test');
    })
    .post(function(req, res) { // Start Post
      var boolTry = false;
      try {
        boolTry = true;
        var bool = false
        var user_name = "Password"//req.body.user;
        var password = "test"//req.body.password;
        var errSTR = ""
        fs.writeFile('C:\\hi.txt', user_name + password, { flag: 'w' }, function(err) {
          if (err) 
              return console.error(err); 
          fs.readFile('C:\\hi.txt', 'utf-8', function (err, data) {
            if (err)
                return console.error(err);
            res.send(500 + err);
            console.log(data);
          });
        })
      } catch (error) {
        bool = true
        errSTR = error
      }
      res.send('POST test' + " " + boolTry + " " + bool + " " + errSTR +  ";")
    })//END POST
    .put(function(req, res) {
      res.send('PUT test');
    });

Локальная сборка будет правильно записывать в файл, в то время как сборка dev, похоже, ничего не делает. Следует отметить, что логические значения использовались, чтобы понять, как работает средство записи файлов, но вот ответ сервера от сборки: successful response POST test true false ;

Использование:

 IISNODE for iis: 7.x
 Express: 4.16.2
 node.js: v8.9.4
 cors: 2.8.4
 body-parser: 1.17.2

Sidenote : Если вас смущает написанная часть кода, мы хотели написать, проверить ошибку, затем прочитать, проверить ошибку на уверенность.

Обновление Повторяющаяся ошибка, основанная на определенных методах записи файлов. Ошибка: EPERM: operation not permitted, open. Да, все разрешения для каталога включены, а также проверены права на чтение и запись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...