我有一个文件,我试图从帖子写。目前,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
。是的,启用了目录的所有权限以及确保读取和写入。