node.js - Bagaimana untuk menggunakan modul fs node dalam persekitaran penyemak imbas?
高洛峰
高洛峰 2017-05-16 13:44:07
0
2
1295

Saya mempunyai keperluan saya perlu menggunakan js tulen untuk membaca imej Satu-satunya parameter ialah laluan imej

var fs = require("fs");
var imageFile = fs.readFileSync('test.png', 'base64');
console.log(imageFile);

Gunakan browserify untuk menukar kepada

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){

},{}],2:[function(require,module,exports){
var fs = require("fs");
var imageFile = fs.readFileSync('test.png', 'base64');
console.log(imageFile);
},{"fs":1}]},{},[2]);

Apabila berjalan dalam persekitaran penyemak imbas, ralat berikut kelihatan bahawa browserify tidak boleh menukar modul fs untuk dijalankan dalam penyemak imbas pada asalnya menjadi masalah (jika anda tidak menggunakan sebarang bentuk html)

. js:5 Ralat Jenis Tidak Ditangkap: fs.readFileSync bukan fungsi

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
Ty80

Pembaca fail?

仅有的幸福

Pertama sekali, mari kita jelaskan, alatan seperti browserify hanya boleh menukar kod JavaScript menggunakan mekanisme pemuatan modul commonjs ke dalam bentuk yang boleh difahami oleh penyemak imbas. Ini tidak bermakna bahawa sebarang kod Node.js boleh digunakan pada bahagian penyemak imbas. browserify 这样的工具仅仅能将使用 commonjs 模块加载机制的 JavaScript 代码转换成为浏览器可以理解的形式。这并不代表着任意 Node.js 代码都可以在浏览器端使用。

最典型的例子就是 fs 模块,它是完全不可能被浏览器端调用的。对本地文件的读写能力完全违反了浏览器本身的安全机制,试想你打开一个网页,然后这个网页竟然就可以读写你本地硬盘上的文件,这该是多么可怕的一件事情!

因此,你的思路本身或许需要重新整理一下,什么样的功能需求促使你要在网页端读写文件呢?如果仅仅是在客户端对用户在 file uploader 中上传的文件预处理,那么你该使用浏览器端原生的 FileReader

Contoh paling tipikal ialah modul fs, yang sama sekali mustahil untuk dipanggil oleh penyemak imbas. Keupayaan untuk membaca dan menulis fail tempatan sepenuhnya melanggar mekanisme keselamatan pelayar itu sendiri. Bayangkan anda membuka halaman web, dan kemudian halaman web ini sebenarnya boleh membaca dan menulis fail pada cakera keras tempatan anda. 🎜 🎜Oleh itu, pemikiran anda sendiri mungkin perlu disusun semula apakah keperluan fungsi yang mendorong anda untuk membaca dan menulis fail di halaman web? Jika anda hanya mempraproses fail yang dimuat naik oleh pengguna dalam pemuat naik fail pada bahagian klien, maka anda harus menggunakan API FileReader asli penyemak imbas🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan