از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش وارد کردن یک فایل JSON در JavaScript/Node.js
سرفصلهای مطلب
معرفی
JSON به دلیل سادگی و سازگاری با بسیاری از زبان های برنامه نویسی، از جمله جاوا اسکریپت، به یک فرمت داده محبوب تبدیل شده است. در این بایت، ما یاد خواهیم گرفت که چگونه به راحتی این فایل ها را به پروژه های Node.js خود وارد کنیم.
چرا فایل های JSON را وارد کنیم؟
پس چرا JSON را به کد خود وارد کنید؟ خوب، فایلهای JSON اغلب برای ذخیره دادهها به روشی ساختاریافته و با دسترسی آسان استفاده میشوند. آنها سبک وزن و قابل خواندن برای انسان هستند و به راحتی می توانند به اکثر زبان های برنامه نویسی وارد شوند.
در جاوا اسکریپت، فایلهای JSON بسیار مفید هستند زیرا میتوانند در یک شی جاوا اسکریپت بومی تجزیه شوند. این بدان معنی است که شما می توانید به داده های موجود در یک فایل JSON به گونه ای دسترسی داشته باشید که گویی یک شی جاوا اسکریپت معمولی است و کار با آن را آسان می کند.
به عنوان مثال، اگر روی یک برنامه وب کار میکنید که نیاز به بارگیری دادههای پیکربندی دارد، ممکن است انتخاب کنید که آن دادهها را در یک فایل JSON ذخیره کنید زیرا میتوانید به راحتی فایل را خودتان ویرایش کنید. این به شما امکان می دهد نه تنها به داده های پیکربندی خود دسترسی داشته باشید، بلکه کد خود را بسیار ساده نگه دارید.
روش وارد کردن JSON در Node.js
با استفاده از fs مدول
وارد کردن یک فایل JSON در Node.js بسیار آسان است زیرا JSON یک نوع بومی برای JS است. شما می توانید از داخلی استفاده کنید fs
(سیستم فایل) ماژول برای خواندن فایل، و سپس تجزیه آن به یک شی جاوا اسکریپت با استفاده از JSON.parse()
. در اینجا یک مثال ساده آورده شده است:
const fs = require('fs');
let rawdata = fs.readFileSync('students.json');
let students = JSON.parse(rawdata);
console.log(students);
در این کد، fs.readFileSync('students.json')
فایل را می خواند students.json
به صورت همزمان، و داده های خام (رشته ای) را برمی گرداند. JSON.parse(rawdata)
سپس این رشته را به یک شی جاوا اسکریپت تجزیه می کند، که در آن ذخیره می کنیم students
متغیر.
توجه داشته باشید: را readFileSync
تابع فایل ها را به صورت همزمان می خواند، به این معنی که اجرای بقیه کدهای شما را تا زمانی که تمام شود مسدود می کند. اگر در حال خواندن یک فایل بزرگ هستید، یا اگر نیاز به خواندن چندین فایل دارید، ممکن است بخواهید از آن استفاده کنید fs.readFile()
در عوض، که ناهمزمان است.
با استفاده از CommonJS نیاز
روش دیگر، و حتی ساده تر، استفاده از CommonJS است require()
تابعی که معمولاً برای بارگیری سایر فایلها/بستههای Node استفاده میشود.
یکی دیگر از ویژگی های خوب require()
روش این است که می تواند برای بارگیری فایل های JSON نیز استفاده شود و محتویات فایل را به عنوان یک شی JSON برمی گرداند، بنابراین تجزیه را برای شما انجام می دهد.
در اینجا روش انجام آن با استفاده از مثالی مشابه در بالا آمده است:
let rawdata = require('students.json');
console.log(students);
همانطور که می بینید، بارگیری JSON فقط یک خط طول می کشد.
تنها معایب این است که ممکن است برای برنامه نویسان تازه کار کمی گیج کننده باشد زیرا ممکن است از این موضوع آگاه نباشند. require
می توان از این طریق استفاده کرد و آن را فقط به عنوان راهی برای بارگذاری کد می دانست. همچنین، require
هر چیزی را که بارگیری میکند، در حافظه پنهان نگه میدارد، بنابراین اگر بعداً در اجرای برنامهتان نیاز به بارگیری مجدد یک فایل JSON داشته باشید، حتی اگر فایل تغییر کرده باشد، همچنان همان دادهها را برمیگرداند.
خطاهای احتمالی و رفع
در حالی که وارد کردن فایلهای JSON در Node.js به طور کلی ساده است، شما همچنان باید در طول مسیر مدیریت صحیح خطا را انجام دهید. بیایید به برخی از رایج ترین آنها و روش رفع آنها نگاه کنیم.
خطا: فایل JSON یافت نشد
احتمالاً واضحترین خطایی که میتوانید ببینید «خطا: ENOENT: چنین فایل یا فهرستی وجود ندارد» است. زمانی که Node.js سعی می کند فایلی را که وجود ندارد بخواند، پرتاب می شود.
$ node app.js
fs.js:114
throw err;
^
Error: ENOENT: no such file or directory, open 'students.json'
برای رفع این خطا، مطمئن شوید فایلی که میخواهید بخوانید واقعا وجود داشته باشد و مسیر فایل درست باشد. اگر فایل در همان دایرکتوری فایل جاوا اسکریپت شما و دایرکتوری فعلی کار است، فقط می توانید از نام فایل استفاده کنید. اگر در دایرکتوری دیگری است، باید مسیر نسبی یا مطلق فایل را وارد کنید، مانند:
let rawdata = fs.readFileSync('./path/to/your/file.json');
خطا: فرمت JSON نامعتبر است
این خطا معمولاً زمانی اتفاق میافتد که ساختار فایل JSON به نحو مورد نیاز مطابقت نداشته باشد، که میتواند برای فایلهای JSON که با دست ویرایش میشوند رایج باشد. به یاد داشته باشید، دادههای JSON به صورت جفت کلید/مقدار نوشته میشوند و کلیدها باید رشتههایی باشند که در دو گیومه محصور شده باشند. این بر خلاف نحو برای اشیاء JS است که می تواند باعث سردرگمی شود، حتی اگر این دو مشابه باشند.
در اینجا یک اشتباه رایج وجود دارد:
{
name: "John Doe", // Error: keys must be in double quotes
"age": 30,
"city": "New York"
}
نحو صحیح این خواهد بود:
{
"name": "John Doe",
"age": 30,
"city": "New York"
}
خطا: بیانیه واردات سازگار نیست
یکی دیگر از مشکلات رایج در هنگام وارد کردن JSON در Node.js، ناسازگاری آن است import
بیانیه. Node.js به طور پیشفرض از ماژولهای CommonJS استفاده میکند، بنابراین از ES6 پشتیبانی نمیکند import
بیانیه. اگر سعی کنید استفاده کنید import
برای بارگیری فایل JSON خود، احتمالاً با خطا مواجه خواهید شد.
import data from './data.json'; // Error: Cannot use import statement outside a module
در عوض، از require()
تابع برای وارد کردن فایل JSON شما:
const data = require('./data.json');
این فایل JSON را بارگیری می کند و JSON را در یک شی جاوا اسکریپت تجزیه می کند، همانطور که قبلا نشان دادیم.
نتیجه
ما چند راه متداول برای بارگیری JSON و خطاهایی که ممکن است هنگام وارد کردن آن در Node.js با آن مواجه شوید را بررسی کرده ایم. به یاد داشته باشید، در حالی که require()
ساده ترین رویکرد است، ممکن است همیشه بهترین راه حل نباشد – به خصوص زمانی که با فایل های بزرگ یا در حال تغییر سروکار دارید.
(برچسبها برای ترجمه)# json
منتشر شده در 1402-12-28 00:16:03