Требуется файл в виде строки
Я использую node + express, и мне просто интересно, как я могу импортировать любой файл в виде строки. Допустим, у меня есть txt файл, который я хочу, это загрузить его в переменную как таковую.
var string = require("words.txt");
Я против
modules.exports = function(){
var string = "whatever";
return string;
}
Ответы
Ответ 1
Если это для (нескольких) конкретных расширений, вы можете добавить свой собственный 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);
});
Ответ 2
Чтобы прочитать файл 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')
Ответ 3
вам нужно будет использовать функцию readFile
из модуля filesystem
.
http://nodejs.org/docs/v0.3.1/api/fs.html#fs.readFile
Ответ 4
Использование только стандартных libs:
var fs = require('fs');
var exec = require('child_process').exec;
// async
fs.readFile('./data.txt', 'utf8', function(oErr, sText) {
console.log(sText);
});
// sync
console.log(fs.readFileSync('./data.txt', 'utf8'));
Ответ 5
вам могут потребоваться файлы .json, как с node.js, так и с TypeScript. Это единственный формат, поддерживающий обязательность(), подходящий для сериализации текста. Вы можете использовать инструмент времени компиляции, чтобы упаковать ваши файлы в json, например https://github.com/cancerberoSgx/fs-to-json