recorrer objeto mostrar leer externo ejemplos ejemplo datos crear convertir con javascript json node.js

javascript - mostrar - Utilizando Node.JS, ¿cómo leo un objeto JSON en la memoria(del servidor)?



recorrer objeto json javascript (7)

Al menos en Node v8.9.1, puedes hacer

var json_data = require(''/path/to/local/file.json'');

y acceder a todos los elementos del objeto JSON.

Fondo

Estoy experimentando un poco con Node.js y me gustaría leer un objeto JSON, ya sea desde un archivo de texto o un archivo .js (¿cuál es mejor?) En la memoria para poder acceder a ese objeto rápidamente desde el código. Me doy cuenta de que hay cosas como Mongo, Alfred, etc., pero eso no es lo que necesito ahora.

Pregunta

¿Cómo leo un objeto JSON de un archivo de texto o js a la memoria del servidor usando JavaScript / Nodo?


Asíncrono está ahí por una razón! Lanza piedra a @mihai.

De lo contrario, aquí está el código que utilizó con la versión asíncrona:

// 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 }


En el Nodo 8 puede usar el util.promisify() para leer un archivo asíncronamente como este

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 })


La forma más fácil que he encontrado para hacer esto es simplemente usar require y la ruta a su archivo JSON.

Por ejemplo, suponga que tiene el siguiente archivo JSON.

prueba.json

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

A continuación, puede cargar fácilmente esto en su aplicación node.js utilizando require

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


Sincronizar

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); });



Si está buscando una solución completa para Async cargando un archivo JSON desde una Relative Path con Manejo de Errores

// 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 ) } }); })

Estructura de directorios: