Node.js + Express不使用FS

时间:2018-05-15 15:08:03

标签: javascript node.js express

我有一个文件,我试图从帖子写。目前,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构建似乎什么都不做。应该注意的是,booleans被用来理解文件编写器的工作方式,但这里是来自build的服务器响应: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 :如果您对代码的写入部分感到困惑,那么意图是编写,检查错误然后读取,检查错误以确保。

更新 基于某些filewrite方法的重复出错错误:EPERM: operation not permitted, open。是的,启用了目录的所有权限以及确保读取和写入。

0 个答案:

没有答案