2017-05-31 70 views
0

下面是我通常使用安全解析在節點環境的本地JSON數據,主要是配置文件和其他一些相關數據的方式:用功能方法解析本地JSON文件的替代方法?

const fs = require('fs') 

let localDb 
let parsedData 

try { 
    localDb = fs.readFileSync('./file.json', 'utf8') 
    parsedData = JSON.parse(localDb) 
} catch (err) { 
    throw err 
} 

exports.data = parsedData 

最後,我從使用的JavaScript文件導出分析數據。雖然這很好,但我很想知道是否有更好的方法用功能性方法來做同樣的事情。

+1

從[我這個答案的理解(https://stackoverflow.com/a/7165572/215552),您可以通過使用包括JSON' const data = require('./ file.json')'... –

+0

我沒有得到catch拋出語句,最後它會打破,爲什麼拋出然後拋出它,是不是容易讓它崩潰了?或者這是爲MCVE簡化了嗎? – Icepickle

回答

2

只是包裝你的代碼在函數內部和導出函數的返回:

const fs = require('fs') 

function parseDBData(name, coding) { 
    let localDb; 
    let parsedData; 

    try { 
     localDb = fs.readFileSync(name, coding); 
     parsedData = JSON.parse(localDb); 
    } catch (err) { 
     throw err; 
    } 
} 

exports.data = parseDBData('./file.json', 'utf8'); 

附:與節點可以直接獲得JSON文件內容通過要求:

exports.data = require('./file.json');