私はnode + expressを使用していますが、ファイルを文字列としてインポートする方法を知りたいだけです。私が望むのは、それを変数にロードすることだけが必要なtxtファイルがあるとします。
var string = require("words.txt");
私は反対です
modules.exports = function(){
var string = "whatever";
return string;
}
私はnode + expressを使用していますが、ファイルを文字列としてインポートする方法を知りたいだけです。私が望むのは、それを変数にロードすることだけが必要なtxtファイルがあるとします。
var string = require("words.txt");
私は反対です
modules.exports = function(){
var string = "whatever";
return string;
}
回答:
(いくつかの)特定の拡張機能の場合は、独自の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);
});
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.
CSSファイルをStringに読み取るには、次のコードを使用します。それは動作し.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')
モジュールreadFile
から関数を使用する必要がありfilesystem
ます。
node.jsとTypeScriptの両方で.jsonファイルを要求できます。これは、テキストのシリアル化に適したrequired()をサポートする唯一の形式です。コンパイル時ツールを使用して、https://github.com/cancerberoSgx/fs-to-jsonなどのjsonにファイルをパックできます。
選択された回答は非推奨になり、推奨されなくなりました。NodeJSのドキュメントでは、次のような他のアプローチを提案しています。
他のNode.jsプログラムを介してモジュールをロードする
しかし、それはもはや拡大しません。
次のような非常に単純なライブラリを使用できます:require-text
またはそれを自分で実装します(上記のパッケージのように:)
var fs = require('fs'); module.exports = function(name, require) { return fs.readFileSync(require.resolve(name)).toString(); };
const { string } = require('words.js');
wherewords.js
containsmodule.exports = { string: 'whatever' };