"fs не определено" Как я могу использовать fs в файле VueJS - PullRequest
0 голосов
/ 17 марта 2020

Я проводил исследования в Интернете, и многие другие столкнулись с аналогичными проблемами, которые остались нерешенными.

Почему я не могу использовать fs в файле VueJS, я прочитал, что он не может быть вызван на стороне клиента, однако он используется в документации, так что я делаю неправильно?

https://socket.io/docs/client-api/#With -a-самоподписанный сертификат

сокет. js файл:


const fs = require('fs');

var https = require('https').createServer(app, {
  key: fs.readFileSync('server-key.pem'),
  cert: fs.readFileSync('server-cert.pem'),
  passphrase: ''
});

чат. js файл:

import io from 'socket.io-client';

const socket = io('my_public_ip:port', {
  ca: fs.readFileSync('server-cert.pem'),  //unable to read fs here
});

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Мне кажется, что это довольно неправильное представление о понятии «клиент»:

  • «Клиент», в терминах сокетов, может быть любым программным обеспечением, способным подключаться к сервер сокетов (например: серверы, браузеры, мобильные приложения, игры ...)

  • «Сервер», в терминах сокетов, является агентом, отвечающим за принятие соединений, сбор клиентов.

Что касается самого модуля (fs), он не работает в среде браузера, поскольку зависит от ядра Node.js, которое входит в состав установочных пакетов Node.js и доступно только на Node.js серверах.

На стороне браузера для подключения к защищенным (https) серверам сокетов все, что вам нужно сделать, это установить параметр secure при подключении, как в:

const socket = io.connect('my_public_ip:port', { secure: true });
0 голосов
/ 17 марта 2020

fs - это модуль в Node.js, и в браузере не поддерживается запрет на прямую работу файловой системы по соображениям безопасности.

...