require file as string

后端 未结 5 1111
日久生厌
日久生厌 2020-12-13 03:33

I\'m using node + express and I am just wondering how I can import any file as a string. Lets say I have a txt file all I want is to load it into a variable as such.

相关标签:
5条回答
  • 2020-12-13 03:36

    If it's for a (few) specific extension(s), you can add your own require.extensions handler:

    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
    

    Otherwise, you can mix fs.readFile with 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);
    });
    
    0 讨论(0)
  • 2020-12-13 03:42

    To read the CSS file to String, use this code. It works for .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')
    
    0 讨论(0)
  • 2020-12-13 03:46

    you'll have to use readFile function from filesystem module.

    http://nodejs.org/docs/v0.3.1/api/fs.html#fs.readFile

    0 讨论(0)
  • 2020-12-13 03:57

    The selected answer is deprecated and not recommended anymore. NodeJS documentation suggests other approaches like:

    loading modules via some other Node.js program

    but it does not expand any more.

    • You can use a very simple library like this: require-text

    • Or implement it yourself ( like from the package above: )

      var fs = require('fs');
      module.exports = function(name, require) {
         return fs.readFileSync(require.resolve(name)).toString();
      };
      
    0 讨论(0)
  • 2020-12-13 04:02

    you can require .json files, both with node.js and TypeScript. That's the only format that support being required() suitable for serializing text. YOu can use a compile-time tool to pack your files into a json, such as https://github.com/cancerberoSgx/fs-to-json

    0 讨论(0)
提交回复
热议问题