У меня есть программа, в которой пользователь сначала создает файл после создания файла. Я добавляю данные в файл, который поступает от клиента последовательно. Нижеприведенный код работает как ожидалось. Я новичок в nodejs, поэтому просто хочу получить экспертное мнение в случае, когда несколько пользователей создают и записывают файлы на своих компьютерах одновременно, будут ли они работать асинхронно или мне нужно внести некоторые изменения в код?Как убедиться, что вызов асинхронный?
io.js
socket.on('createlogfile', function() {
logsRecording.userLogs(function(filename) {
socket.emit('filename', filename);
});
});
socket.on('startrecording', function(obj) {
logsRecording.recordLogs(obj);
});
server.js
userLogs: function (callback) {
var filename = uuid.v4() + '.log';
var file = filePath + '/' + filename;
fs.openSync(file, 'a',function() {
console.log('file created');
});
console.log('userLogs');
callback(filename);
},
recordLogs: function (obj) {
var dir = './app/records/templogs'
var fileAppend = dir + '/'+ obj.file;
console.log('data from recording', obj.data);
fs.readdir(dir, function(err, items) {
items.forEach(function(file){
if(obj.file === file){
fs.appendFile(fileAppend, obj.data+ "\r\n", null, 'utf8', function (err) {
if (err) throw err;
});
console.log('filename in records',obj.file);
}
});
});
}
Это будет удобно - http://caolan.github.io/async/ – deeveeABC