我正在尝试创建一个 PUT 方法来更新 obj.json 文件并在上传后显示其内容。我得到一个空对象,没有内容?
function upload(response, request) {
console.log("Request handler 'upload' was called.");
var form = new formidable.IncomingForm();
console.log("about to parse");
form.parse(request, function(error, fields, files){
response.writeHead(200, {'content-type': 'application/json'});
response.write('received upload:\n\n');
response.end(util.inspect({fields: fields, files: files}));
});
form.on('file', function(field, file) {
console.log(file);
if (file.type == 'application/json') {
jsonObject = JSON.parse(fs.readFileSync(file.path, 'utf8'));
console.log(jsonObject);
} else { console.log('wrong file');}
});
}
function update(response, request) {
console.log("Request handler 'update' was called.");
response.writeHead(200, {"Content-Type": "application/json"});
var form = new formidable.IncomingForm();
console.log("about to parse");
form.parse(request, function(error, fields, files){
response.writeHead(200, {'content-type': 'application/json'});
response.write('ready to update:\n\n');
response.end(util.inspect({fields: fields, files: files}));
});
form.on('file', function(field, file) {
console.log(file);
if (file.type == 'application/json') {
JSON.parse(fs.writeFileSync(file.path, JSON.stringify('"test":"Okay"'), 'utf8'));
console.log(jsonObject);
} else { console.log('wrong file');}
});
}
我能够上传文件并访问 json,但现在无法更改文件的内容。关于如何做到这一点有什么想法吗?另外,删除方法是一样的吗?
最佳答案
您在这里问了 2 个问题,因此我给您 2 个单独的答案。更新 JSON 文件就像其他任何事情一样:
var fs = require('fs');
var filename = '/tmp/content.json';
var file = fs.readFileSync(filename);
var json = JSON.parse(file);
//update the object
json.newValue = 'testValue';
//update the file with new object
fs.writeFileSync(filename, JSON.stringify(json));
关于javascript - 尝试在 Node.js 中对 JSON 文件进行简单的 PUT 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28548848/