javascript - नोड.जेएस का उपयोग करके, मैं एक JSON ऑब्जेक्ट को(सर्वर) मेमोरी में कैसे पढ़ूं?




node.js (5)

एक कारण के लिए असीमित है! @ मिहाई पर पत्थर फेंकता है

अन्यथा, यहां वह कोड है जिसका उपयोग उन्होंने असीमित संस्करण के साथ किया था:

// Declare variables
var fs = require('fs'),
    obj

// Read the file and send to the callback
fs.readFile('path/to/file', handleFile)

// Write the callback function
function handleFile(err, data) {
    if (err) throw err
    obj = JSON.parse(data)
    // You can now play with your datas
}

पृष्ठभूमि

मैं Node.js के साथ कुछ प्रयोग कर रहा हूं और एक JSON ऑब्जेक्ट को पढ़ना चाहूंगा, या तो टेक्स्ट फ़ाइल या .js फ़ाइल (जो बेहतर है ??) मेमोरी में ताकि मैं उस ऑब्जेक्ट को कोड से जल्दी से एक्सेस कर सकूं। मुझे एहसास है कि वहां मोंगो, अल्फ्रेड इत्यादि जैसी चीजें हैं, लेकिन यही वह नहीं है जो मुझे अभी चाहिए।

सवाल

मैं जावास्क्रिप्ट / नोड का उपयोग कर किसी पाठ या जेएस फ़ाइल से और सर्वर मेमोरी में JSON ऑब्जेक्ट को कैसे पढ़ूं?


ऐसा करने का सबसे आसान तरीका यह है कि केवल अपनी JSON फ़ाइल की require और पथ का उपयोग करें।

उदाहरण के लिए, मान लें कि आपके पास निम्न JSON फ़ाइल है।

test.json

{
  "firstName": "Joe",
  "lastName": "Smith"
}

इसके बाद आप इसे आसानी से अपने node.js एप्लिकेशन में लोड कर सकते हैं

var config = require('./test.json');
console.log(config.firstName + ' ' + config.lastName);

नोड 8 में आप बिल्ट-इन util.promisify() को अतुल्यकालिक रूप से इस तरह की फ़ाइल पढ़ने के लिए उपयोग कर सकते हैं

const {promisify} = require('util')
const fs = require('fs')
const readFileAsync = promisify(fs.readFile)

readFileAsync(`${__dirname}/my.json`, {encoding: 'utf8'})
  .then(contents => {
    const obj = JSON.parse(contents)
    console.log(obj)
  })
  .catch(error => {
    throw error
  })

सिंक:

var fs = require('fs');
var obj = JSON.parse(fs.readFileSync('file', 'utf8'));

async:

var fs = require('fs');
var obj;
fs.readFile('file', 'utf8', function (err, data) {
  if (err) throw err;
  obj = JSON.parse(data);
});

यदि आप Async को त्रुटि प्रबंधन से Relative Path से JSON फ़ाइल लोड करने के लिए एक पूर्ण समाधान की तलाश में हैं

  // Global variables
  // Request path module for relative path
    const path = require('path')
  // Request File System Module
   var fs = require('fs');


// GET request for the /list_user page.
router.get('/listUsers', function (req, res) {
   console.log("Got a GET request for list of users");

     // Create a relative path URL
    let reqPath = path.join(__dirname, '../mock/users.json');

    //Read JSON from relative path of this file
    fs.readFile(reqPath , 'utf8', function (err, data) {
        //Handle Error
       if(!err) {
         //Handle Success
          console.log("Success"+data);
         // Parse Data to JSON OR
          var jsonObj = JSON.parse(data)
         //Send back as Response
          res.end( data );
        }else {
           //Handle Error
           res.end("Error: "+err )
        }
   });
})

निर्देशिका संरचना:





node.js