web-dev-qa-db-fra.com

React Js nécessite 'fs'

J'ai 

import fs from 'fs'

et dans mon package.json j'ai

Puis je lance la commande

>  npm i fs
>  [email protected] node_modules/fs

ensuite dans mon magasin React, j'importe le module 'fs'

import fs from 'fs'

Cependant, lorsque j'essaie d'utiliser fs

Je ne vois pas de méthodes sauf pour constructeur et quelques autres méthodes. Je ne vois pas la méthode createReadStream ni aucune autre méthode de manipulation de fichier.

Est-ce que quelqu'un sait ce qui ne va pas? (en utilisant Webpack) et peut donner plus d’informations sur demande, mais j’en suis aussi loin ...

ps: pourquoi est-ce que je peux npm i fs --save quand je lis sur d'autres articles que je n'ai pas à le faire (en utilisant le noeud 5.5.0)

import Reflux from 'reflux'
import AddItemActions from '../actions/AddItemActions'
import request from  'superagent-bluebird-promise'
import fs from 'fs'

var ImageStore = Reflux.createStore({
  init(){
    .
    .
    .
  },

  decryptImage(file) {
    var reader = new FileReader();
    var info = {}
    reader.onload = (output) => {
      debugger
      request.post("https://camfind.p.mashape.com/image_requests")
        .set("X-Mashape-Key", "KEY")
        .set("Content-Type", "application/x-www-form-urlencoded")
        .set("Accept", "application/json")
        .send({'focus': { 'x': 480}})
        .send({'focus': { 'y': 640}})
        .send({'image_request': {'altitude': 27.912109375}})
        .send({'image_request': {'language': "en"}})
        .send({'image_request': {'latitude': 35.8714220766008}})
        .send({'image_request': {'locale' : "en_US"}})
        .send({'image_request': {'longitude': 14.3583203002251}})
        .send({'image_request': {'image': fs.createReadStream("/path" + 'file.jpg')}})
        .then(function (result) {
          console.log(result.status, result.headers, result.body);
          this.info = result
        },
          function(error) {
            console.log(error);
        })
    }

    reader.readAsDataURL(file);
    return info
  },
  .
  .
  .
  .
})

7
joe

Dans create-react-app ils ont écrasé 'fs'. Vous ne pouvez pas l'importer . Ils l'ont fait parce que fs est un module de base de nœud.
Vous devrez trouver une autre solution à ce problème. Voir ce billet.

5
kalm42

Il est possible que cela soit un problème d'environnement. Il n'est pas possible pour le navigateur d'interpréter et d'exécuter des modules côté serveur tels que fs.

La solution consiste à exécuter les méthodes fs dans un environnement Node (côté serveur) ou à rechercher un package offrant les mêmes fonctionnalités, mais écrit pour le navigateur.

C'est discuté dans cette question ... Module non trouvé: Erreur: Impossible de résoudre le module 'fs'

Et cette question ... Utilisez le module fs dans React.js, node.js, webpack, babel, express

0
Jess B