স্ট্রিং হিসাবে ফাইল প্রয়োজন


103

আমি নোড + এক্সপ্রেস ব্যবহার করছি এবং আমি কেবল ভাবছি যে আমি কোনও ফাইলকে স্ট্রিং হিসাবে কীভাবে আমদানি করতে পারি। বলি যে আমার কাছে একটি টেক্সট ফাইল রয়েছে যা আমি চাই তা হ'ল এটির মতো একটি ভেরিয়েবলে লোড করা।

var string = require("words.txt");

আমি বিরুদ্ধে

modules.exports = function(){

    var string = "whatever";

    return string;

}

4
তা না, কিন্তু এই এড়াতে একটি ফাংশন তৈরি করা হচ্ছে: const { string } = require('words.js');যেখানে words.jsরয়েছেmodule.exports = { string: 'whatever' };
ডেমোক্রাটিক Pilafian

উত্তর:


131

যদি এটি (কয়েকটি) নির্দিষ্ট এক্সটেনশনের (গুলি) হয় তবে আপনি নিজের require.extensionsহ্যান্ডলার যুক্ত করতে পারেন :

var fs = require('fs');

require.extensions['.txt'] = function (module, filename) {
    module.exports = fs.readFileSync(filename, 'utf8');
};

var words = require("./words.txt");

console.log(typeof words); // string

অন্যথা, আপনি মিশ্রিত করা যাবে fs.readFileসঙ্গে require.resolve:

var fs = require('fs');

function readModuleFile(path, callback) {
    try {
        var filename = require.resolve(path);
        fs.readFile(filename, 'utf8', callback);
    } catch (e) {
        callback(e);
    }
}

readModuleFile('./words.txt', function (err, words) {
    console.log(words);
});

52
প্রযোজনা। এক্সটেনশনগুলি এখন যে কেউ এই পোস্ট জুড়ে আসে তার জন্য অবচয় করা হয়। nodejs.org/api/globals.html#globals_require_extensions
ব্লকলুপ

4
Deprecated in the pastকিন্তুSince the module system is locked, this feature will probably never go away. However, it may have subtle bugs and complexities that are best left untouched.
loretoparisi

11
যদিও এটি সত্যই অবমূল্যায়ন করা হয়েছে, সেখানে কি কোনও ভাল বিকল্প আছে? (যার প্রয়োজন বর্ধিত হয়, আমি বোঝাতে চাইছি)
জুয়ান্ডেমার্কো

36

স্ট্রিংয়ে সিএসএস ফাইলটি পড়তে, এই কোডটি ব্যবহার করুন। এটা কাজ করে .txt

const fs = require('fs')
const path = require('path')

const css = fs.readFileSync(path.resolve(__dirname, 'email.css'), 'utf8')

ES6:

import fs from 'fs'
import path from 'path'

let css = fs.readFileSync(path.resolve(__dirname, 'email.css'), 'utf8')

4
এইচটিএমএল ফাইলের জন্য আমি এটি কীভাবে করব? আমার একটি ভাইবোন ডিরেক্টরিতে একটি এইচটিএমএল ফাইল রয়েছে যা আমাকে চিরিওতে স্ট্রিং হিসাবে পড়তে এবং লোড করা দরকার?
lopezdp


1

নির্বাচিত উত্তর হ্রাস করা হয় এবং আর প্রস্তাবিত হয় না। নোডজেএস ডকুমেন্টেশন অন্যান্য পদ্ধতির মত পরামর্শ দেয় :

কিছু অন্যান্য নোড.জেএস প্রোগ্রামের মাধ্যমে মডিউলগুলি লোড করা হচ্ছে

তবে এটি আর প্রসারিত হয় না।

  • আপনি এটির মতো খুব সাধারণ লাইব্রেরি ব্যবহার করতে পারেন: প্রয়োজনীয় পাঠ্য

  • অথবা এটি নিজে প্রয়োগ করুন (উপরের প্যাকেজ থেকে:

    var fs = require('fs');
    module.exports = function(name, require) {
       return fs.readFileSync(require.resolve(name)).toString();
    };
    

0

আপনার নোড.জেএস এবং টাইপস্ক্রিপ্ট উভয়ই .json ফাইলের প্রয়োজন হতে পারে। এটিই কেবলমাত্র ফরম্যাট যা সমর্থনের প্রয়োজন () পাঠ্য সিরিয়ালাইজ করার জন্য উপযুক্ত। আপনি আপনার ফাইলগুলিকে কোনও জসনে প্যাক করতে একটি সংকলন-সময় সরঞ্জাম ব্যবহার করতে পারেন, যেমন https://github.com/cancerberoSgx/fs-to-json

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.