2012-10-03 10 views
14

पर प्रदर्शित करने के लिए मुझे .json फ़ाइल को व्यक्त करने और दृश्य में प्रदर्शित करने में कोई समस्या है। कृपया अपने उदाहरण साझा करें।एक्सप्रेस जेएस में जेएसएस फ़ाइल कैसे प्राप्त करें और

उत्तर

25
var fs = require("fs"), 
    json; 

function readJsonFileSync(filepath, encoding){ 

    if (typeof (encoding) == 'undefined'){ 
     encoding = 'utf8'; 
    } 
    var file = fs.readFileSync(filepath, encoding); 
    return JSON.parse(file); 
} 

function getConfig(file){ 

    var filepath = __dirname + '/' + file; 
    return readJsonFileSync(filepath); 
} 

//assume that config.json is in application root 

json = getConfig('config.json'); 
+10

इस के अनुसार के रूप में 'की आवश्यकता होती है ('./ config.json') ही है' – Blowsie

+0

इस संस्करण V0 की तुलना में कम Node.js से संबंधित था। 5.x http://stackoverflow.com/questions/7163061/is-there-a-require-for-json-in-node-js – Brankodd

+3

'fs.readFile()' 'requ()' जैसा नहीं है । यदि आप 'fs.readFile()' के साथ फ़ाइल को दो बार पढ़ने की कोशिश करते हैं, तो आपको स्मृति में दो अलग-अलग पॉइंटर्स मिलेंगे। लेकिन यदि आपको एक ही स्ट्रिंग के साथ() 'की आवश्यकता है, तो आप आवश्यक()' के कैशिंग व्यवहार के कारण स्मृति में उसी ऑब्जेक्ट को इंगित करेंगे। इससे अप्रत्याशित परिणाम हो सकते हैं: पहली पॉइंटर द्वारा संदर्भित ऑब्जेक्ट को संशोधित करते समय अप्रत्याशित रूप से दूसरे पॉइंटर द्वारा संशोधित ऑब्जेक्ट को बदल दिया जाता है। – steampowered

11

यह मेरे लिए काम करता है। FS मॉड्यूल का उपयोग करना:

var fs = require('fs'); 

function readJSONFile(filename, callback) { 
    fs.readFile(filename, function (err, data) { 
    if(err) { 
     callback(err); 
     return; 
    } 
    try { 
     callback(null, JSON.parse(data)); 
    } catch(exception) { 
     callback(exception); 
    } 
    }); 
} 

उपयोग:

readJSONFile('../../data.json', function (err, json) { 
    if(err) { throw err; } 
    console.log(json); 
}); 

स्रोत: https://codereview.stackexchange.com/a/26262

+0

पर त्रुटि फेंकने की आवश्यकता है मैं बिल्कुल इसका उपयोग कर रहा हूं और 'if (err) {throw err; } सिंटेक्स त्रुटि: अप्रत्याशित टोकन} ' – Piet

14

अपने नियंत्रक में कुछ इस तरह करते हैं।

करने के लिए json फ़ाइल की सामग्री मिलती है:

ES5 var foo = require('path/to/your/file.json');

ES6 import foo from '/path/to/your/file.json';

करने के लिए भेज json हुए अपने दृश्य पर:

function getJson(req, res, next){ 
    res.send(foo); 
} 

यह एक अनुरोध के माध्यम से अपने दृश्य पर json सामग्री भेजना चाहिए।

नोट

BTMPL

While this will work, do take note that require calls are cached and will return the same object on each subsequent call. Any change you make to the .json file when the server is running will not be reflected in subsequent responses from the server.

+0

ध्यान दें कि स्थानीय फ़ाइलों के लिए, आपको आवश्यक'/'की आवश्यकता के लिए पिछले डॉट/स्लैश की आवश्यकता है। –

संबंधित मुद्दे