web-dev-qa-db-ja.com

fs.readFileSyncは関数MeteorではありませんReact

ReadFileSync();を呼び出そうとした後、Chromeデバッガーで 'fs.readFileSyncは関数ではありません'を取得しています。

私はそれを呼んでいます...

const fs = require('fs');

関数を呼び出します。。。

let content = fs.readFileSync('/path/to/my/file.stuff');

そして、コンテンツを表示してみてください。

console.log(content);

何も得られません。私がする時...

console.log(fs);

ジェネリックJavaScriptオブジェクトを取得しているようです...完全にスタックしています。

Meteorバージョン:1.5.1 npmバージョン:3.10.10ノードバージョン:v6.10.1

3
VocoJax

すべての答えをありがとう!

クライアント側ではfsを使用できないことを確認しました。

代わりに、別のローカルの単純なエクスプレスノードAPIを作成し、reactWebアプリがノードAPIにリクエストを返してそのデータを取得します。

また、あなたはこれをしなければなりません...

https://enable-cors.org/server_expressjs.html

5
VocoJax

ReadFileSync();を呼び出そうとした後、Chromeデバッガーで 'fs.readFileSyncは関数ではありません'を取得しています。

fsはブラウザでは機能しません。これは、潜在的なセキュリティの脅威からファイルシステムを保護するための設計によるものです。

ブラウザ環境で低レベルのNodeパッケージを使用する

ブラウザ環境でこれにアクセスする必要がある場合は、 Electron を使用することを検討してください。これにより、実行中のChromiumインスタンスでOSレベルのNodeJSパッケージを使用できます。

5
canaan seaton

fsは、ブラウザが一部のjavascriptコードを制限しているため、クライアントでは使用できません。

コードがサーバーとクライアントの両方で実行されている場合は、次を使用できます。

if (Meteor.isClient) return;

エラーを回避するため。それ以外の場合は、必要なJSONをimportingするなど、達成しようとしていることを実行する別の方法があるはずです。

0
Seb Morris