我正在使用 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);
});
要将 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')
所选答案已弃用,不再推荐。NodeJS 文档建议使用其他方法,例如:
通过其他一些 Node.js 程序加载模块
但它不再扩大。
你可以像这样使用一个非常简单的库:require-text
或者自己实现它(比如上面的包:)
var fs = require('fs'); module.exports = function(name, require) { return fs.readFileSync(require.resolve(name)).toString(); };
您必须使用模块中的readFile
功能。filesystem
您可以要求 .json 文件,包括 node.js 和 TypeScript。这是唯一支持被要求()的格式,适用于序列化文本。您可以使用编译时工具将文件打包成 json,例如https://github.com/cancerberoSgx/fs-to-json
我最简单的解决方案是
var string = require("fs").readFileSync("file.txt", 'utf8')
console.log("string = ", string);