требовать файл как строку


Я использую node + express, и мне просто интересно, как я могу импортировать любой файл в виде строки. Допустим у меня есть файл txt, я хочу, чтобы загрузить его в переменную как таковой.

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

Я против

modules.exports = function(){

    var string = "whatever";

    return string;

}
4 62

4 ответа:

если это для (нескольких) конкретных расширений, вы можете добавить свой собственный 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);
});

вам придется использовать с filesystem модуль.

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

читать CSS-файл в строку, используйте этот код. Это работает для .txt.

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

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

вы можете потребовать .файлы json, оба с узлом.js и TypeScript. Это единственный формат, который поддерживает требуемый (), подходящий для сериализации текста. Вы можете использовать инструмент времени компиляции для упаковки файлов в json, например https://github.com/cancerberoSgx/fs-to-json