gpt4 book ai didi

javascript - 我尝试将 browserify 与 'temp' 和 'fs' 模块一起使用,但我得到的只是这个糟糕的错误

转载 作者:搜寻专家 更新时间:2023-10-31 23:48:25 25 4
gpt4 key购买 nike

我正在尝试迁移一个 Node 项目以在浏览器中运行。该项目(暂且不考虑原因)写入一个临时文件,使用 temp 和类似的代码:

var temp = require('temp');
var fs = require('fs');

temp.open('helloworld.txt', function (err, info) {
if (err) {
console.log('Failed to open a temp file:', err);
return;
}

console.log('temp: ', info.path);
fs.writeFile(info.path, 'Hello World!', function (err2) {
if (err2) {
console.log('Failed to write to a temp file:', err2);
return;
}
});
});

运行浏览器代码时出现以下错误:

Uncaught TypeError: undefined is not a function

对于以下行:

fs.open(filePath, RDWR_EXCL, 0600, function(err, fd) {

temp.open 调用。

我非常清楚你不能在浏览器中使用普通的 javascript 编写文件,但我想知道 browserify 是否有一些替代品,特别是因为我们正在谈论一个临时文件。

我找到了 browserify-fs ,并尝试:

browserify -r fs:browserify-fs my-example.js -o bfied.js

但我得到了完全相同的错误。我试图将 require('fs') 替换为 require('browserify-fs') 但这也导致了类似的错误(我当然安装了 browserify-fs模块..)

任何建议的解决方案将不胜感激:)如果这种类型的迁移是不可能的,我也很高兴知道..

谢谢!

最佳答案

我偶然发现了这篇文章,因为我想我正在尝试做与您几乎完全相同的事情。我不确定你从哪里弄来的,但我发现在使用 browserify-fs 时,你无法访问浏览器沙盒状态之外的文件。

所以当尝试...

var fs = require('broserify-fs);
fs.read('hello.txt', 'utf8' ....

我遇到了和你一样的错误,但是这样做的时候......

fs.mkdir('/home', function() {
fs.writeFile('/home/hello-world.txt', 'Hello world!\n', function() {
fs.readFile('/home/hello-world.txt', 'utf-8', function(err, data) {
console.log(data);
});
});
});

一切正常(我认为只使用临时文件)。

我对此非常陌生,所以我不确定最好的方法是什么。我想您要么想在本地运行 Node.js 服务器并向其发出 ajax 命令以执行读/写操作,要么研究 HTML5 文件系统的东西 - 这看起来是一篇好文章 - http://www.html5rocks.com/en/tutorials/file/dndfiles/

希望这对您有所帮助(抱歉,您不得不等待 2 个月才能得到答案;)我碰巧偶然发现了您的问题,当没有答案时我的心沉了下去)

汤姆

关于javascript - 我尝试将 browserify 与 'temp' 和 'fs' 模块一起使用,但我得到的只是这个糟糕的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25473213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com