126 votes

exiger le fichier comme chaîne de caractères

J'utilise node + express et je me demande comment je peux importer n'importe quel fichier sous forme de chaîne. Disons que j'ai un fichier txt et que je veux le charger dans une variable comme telle.

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

Je suis contre

modules.exports = function(){

    var string = "whatever";

    return string;

}

152voto

Jonathan Lonowski Points 45253

Si c'est pour une (ou quelques) extension(s) spécifique(s), vous pouvez ajouter votre propre require.extensions manipulateur :

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

Sinon, vous pouvez mélanger fs.readFile con 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);
});

52voto

Max Ma Points 129

Pour lire le fichier CSS en String, utilisez ce code. Il fonctionne pour .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')

8voto

Mim Armand Points 409

La réponse choisie est déprécié y non recommandé plus. Documentation NodeJS suggère d'autres approches comme :

chargement des modules via un autre programme Node.js

mais il ne s'étend plus.

  • Vous pouvez utiliser une bibliothèque très simple comme celle-ci : Requérir le texte

  • Ou l'implémenter vous-même (comme dans le paquet ci-dessus :)

    var fs = require('fs');
    module.exports = function(name, require) {
       return fs.readFileSync(require.resolve(name)).toString();
    };

7voto

Simon Boudrias Points 12696

Vous devrez utiliser readFile de la fonction filesystem module.

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

2voto

Minh Nguyen Points 73

Ma solution la plus simple est

var string = require("fs").readFileSync("file.txt", 'utf8')
console.log("string = ", string);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X