web-dev-qa-db-fra.com

nécessite un fichier sous forme de chaîne

J'utilise node + express et je me demande simplement comment importer un fichier sous forme de chaîne. Disons que j'ai un fichier txt, tout ce que je veux, c'est le charger dans une variable en tant que telle.

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

Je suis contre

modules.exports = function(){

    var string = "whatever";

    return string;

}
76
ThomasReggi

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

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 avec 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);
});
104

Pour lire le fichier CSS dans String, utilisez ce code. Cela 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')
15
Max Ma

vous devrez utiliser la fonction readFile du module filesystem.

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

6
Simon Boudrias

vous pouvez exiger des fichiers .json, à la fois avec node.js et TypeScript. C'est le seul format qui prend en charge le fait d'être requis () et approprié pour la sérialisation de texte. Vous pouvez utiliser un outil de compilation pour compresser vos fichiers dans un JSON, tel que https://github.com/cancerberoSgx/fs-to-json

0
cancerbero