स्ट्रिंग के रूप में फ़ाइल की आवश्यकता है


99

मैं नोड + एक्सप्रेस का उपयोग कर रहा हूं और मैं सोच रहा हूं कि मैं किसी भी फाइल को स्ट्रिंग के रूप में कैसे आयात कर सकता हूं। कहते हैं कि मेरे पास एक txt फ़ाइल है जो मैं चाहता हूं कि इसे एक चर में लोड किया जाए।

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

मैं इसका खिलाफ

modules.exports = function(){

    var string = "whatever";

    return string;

}

1
यह एक उत्तर नहीं है, लेकिन यह एक समारोह बनाने से बचता है: const { string } = require('words.js');जहां words.jsशामिल हैmodule.exports = { string: 'whatever' };
डेम पिलाफियन

जवाबों:


127

यदि यह (कुछ) विशिष्ट एक्सटेंशन के लिए है, तो आप अपना स्वयं का 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);
});

51
आवश्यकता है। अब इस पद के लिए आने वाले किसी भी व्यक्ति के लिए अनुकूलन को चित्रित किया गया है। nodejs.org/api/globals.html#globals_require_extensions
blockloop

2
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.
19et में loretoparisi

10
जबकि यह वास्तव में पदावनत है, क्या कोई अच्छा विकल्प है? (कि विस्तार की आवश्यकता है, मेरा मतलब है)
juandemarco

31

स्ट्रिंग के लिए CSS फ़ाइल पढ़ने के लिए, इस कोड का उपयोग करें। इसके लिए काम करता है .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')

2
मैं इसे html फ़ाइल के लिए कैसे प्राप्त कर सकता हूं? मेरे पास एक भाई की निर्देशिका में एक html फ़ाइल है जिसे मुझे चीयरियो में स्ट्रिंग के रूप में पढ़ने और लोड करने की आवश्यकता है?
लोपेज्डप


0

आप .json फ़ाइलों की आवश्यकता कर सकते हैं, दोनों नोड.जेएस और टाइपस्क्रिप्ट के साथ। यह एकमात्र प्रारूप है जिसका समर्थन आवश्यक है () धारावाहिक पाठ के लिए उपयुक्त है। YOu आपकी फ़ाइलों को एक json में पैक करने के लिए एक संकलन-समय उपकरण का उपयोग कर सकता है, जैसे कि https://github.com/cancerberoSgx/fs-to-json


0

चयनित उत्तर हटा दिया गया है और अब अनुशंसित नहीं है। NodeJS प्रलेखन अन्य दृष्टिकोणों का सुझाव देता है जैसे:

कुछ अन्य Node.js प्रोग्राम के माध्यम से लोडिंग मॉड्यूल

लेकिन यह किसी भी अधिक विस्तार नहीं करता है।

  • आप इस तरह एक बहुत ही सरल लाइब्रेरी का उपयोग कर सकते हैं: आवश्यकता-पाठ

  • या इसे स्वयं लागू करें (जैसे ऊपर के पैकेज से):

    var fs = require('fs');
    module.exports = function(name, require) {
       return fs.readFileSync(require.resolve(name)).toString();
    };
    
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.