要求文件为字符串

问题描述 投票:75回答:4

我正在使用node + express,我只是想知道如何将任何文件作为字符串导入。让我说我有一个txt文件,我想要的是将它加载到一个变量中。

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

我反对

modules.exports = function(){

    var string = "whatever";

    return string;

}
string node.js express require
4个回答
105
投票

如果是(少数)特定扩展名,您可以添加自己的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.readFilerequire.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);
});

16
投票

要将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')

6
投票

你将不得不使用readFile模块的filesystem函数。

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


0
投票

您可以使用node.js和TypeScript来获取.json文件。这是支持必需的唯一格式(),适用于序列化文本。你可以使用编译时工具将文件打包成json,例如https://github.com/cancerberoSgx/fs-to-json

© www.soinside.com 2019 - 2024. All rights reserved.