Używam node + express i zastanawiam się, jak mogę zaimportować dowolny plik jako ciąg. Powiedzmy, że mam plik txt, a chcę tylko załadować go do zmiennej jako takiej.
var string = require("words.txt");
Jestem przeciwko
modules.exports = function(){
var string = "whatever";
return string;
}
const { string } = require('words.js');
gdziewords.js
zawieramodule.exports = { string: 'whatever' };
Odpowiedzi:
Jeśli dotyczy (kilku) określonych rozszerzeń, możesz dodać własną
require.extensions
procedurę obsługi: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
W przeciwnym razie możesz mieszać
fs.readFile
zrequire.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); });
źródło
Deprecated in the past
aleSince 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.
Aby odczytać plik CSS na String, użyj tego kodu. To działa dla
.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')
źródło
będziesz musiał użyć
readFile
funkcji zfilesystem
modułu.http://nodejs.org/docs/v0.3.1/api/fs.html#fs.readFile
źródło
możesz wymagać plików .json, zarówno z node.js, jak i TypeScript. To jedyny format, który obsługuje funkcję required () odpowiednią do serializacji tekstu. Możesz użyć narzędzia kompilacji, aby spakować pliki do pliku json, takiego jak https://github.com/cancerberoSgx/fs-to-json
źródło
Wybrana odpowiedź jest przestarzała i nie jest już zalecana . Dokumentacja NodeJS sugeruje inne podejścia, takie jak:
ale już się nie rozszerza.
Możesz użyć bardzo prostej biblioteki, takiej jak ta: require-text
Lub zaimplementuj to samodzielnie (jak z powyższego pakietu:)
źródło