Я создал файл с именем config.js
, который выглядит следующим образом:
const config = {
staticFiles:{
name:[
'./',
'./index.html',
'./script.js',
'./icon.jpg'
]
},
outputFolderName: "D:\\DemoApp",
sourceApplicationParentPath: "D:\\DemoApp\\"
};
Теперь я читаю список файлов из sourceApplicationParentPath
папки с помощью узла и должен обновить staticFiles
массив вышеуказанного файла. Я не уверен, как мне это сделать. Может кто-нибудь, пожалуйста, помогите.
Заранее спасибо.
config.js
const config = {
staticFiles:{
name:[
'./',
'./index.html',
'./script.js',
'./icon.jpg'
]
},
outputFolderName: "D:\\DemoApp",
sourceApplicationParentPath: "D:\\DemoApp\\"
};
exports.config = config;
код файла, из которого вы хотите изменить данные
var fs = require('fs');
var bodyparser = require('body-parser');
var config = require('./config.js')
//path of directory
var directoryPath = "D:\\DemoApp\\"
var data = config.config;
//passsing directoryPath and callback function
fs.readdir(directoryPath, function (err, files) {
//handling error
if (err) {
return console.info('Unable to scan directory: ' + err);
}
var dataToUpdate = data.staticFiles.name;
//listing all files using forEach
files.forEach(function (file) {
// Do whatever you want to do with the file
console.info(file)
dataToUpdate.push(file)
});
data.staticFiles.name = dataToUpdate;
var value = 'const config = ' + JSON.stringify(data) + ';' + '\n' + 'exports.config = config';
fs.writeFile('./config.js',value, er => {
if (er){
throw er;
}
else{console.info('success')}
});
});
Я отредактировал ответ. Я проверил это, и это работает. Пожалуйста, попробуйте и дайте мне знать
config.js
const config = {
staticFiles: {
name: ['./',
'./index.html',
'./script.js',
'./icon.jpg',
]
},
outputFolderName: 'D:\\DemoApp',
sourceApplicationParentPath: 'D:\\DemoApp'
};
module.exports = config;
index.js
var fs = require('fs'),
config = require('./config'),
util = require('util');
fs.readdir(config.sourceApplicationParentPath, function(err, files) {
if (err) console.info(err.message);
for (var i = 0; i < files.length; i++) {
if (config.staticFiles.name.indexOf(`./${files[i]}`) == -1) {
config.staticFiles.name.push('./' + files[i]);
}
if (i == (files.length - 1)) {
var buffer = `const config = \n ${util.inspect(config, false, 2, false)}; \n module.exports = config;`;
fs.writeFile('./config.js', buffer, function(err) {
err || console.info('Data replaced \n');
})
}
}
});
Приведенный выше код протестирован и работает нормально.
Вы можете добавить или изменить объект, массив или значение в config.js без дублирования записи.
Спасибо, Санджай, но он не читает файл, я уже написал этот код, но не могу обновить массив staticFiles в файле config.js. Это означает, что если мы читаем файл x.js, y.js, j.js, используя ваш код, то наш config.js должен выглядеть так: staticFiles:{ name:[ './', './index.html ', './script.js', './icon.jpg', x.js, y.js, z.js]