【发布时间】:2014-06-30 06:02:33
【问题描述】:
我正在尝试使用 pdf.js 和 node.js(fs 通过 browserify)将 pdf 加载到离线 Chrome 应用程序中。
我的问题是文件路径。我尝试使用以下代码进行简短测试:
var fs = require('browserify-fs');
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);
});
});
});
它的行为与应有的完全一样。在控制台上,我读到“Hello world!”。 我的第一个问题:我不知道该文件是在哪里创建的?!?!我已经搜索了整个硬盘驱动器,但找不到 hello-world.txt 任何地方。 browserify-fs在哪里被视为root?
其次,我尝试了另一个测试,使用了一些 Chrome 的 I/O 和 node.js。
var fs = require('browserify-fs');
var path;
chrome.fileSystem.chooseEntry({'type': 'openFile'},
function( entry, fileEntries) {
chrome.fileSystem.getDisplayPath(entry, function(displayPath){
path = displayPath;
console.log(path);
fs.appendFile(path, 'data to append', function (err) {
if (err) throw err;
console.log('The "data to append" was appended to file!');
});
});
});
Chrome 会提示我选择一个文件。选择后,它将向控制台打印正确的文件路径(例如,"~/Downloads/foo.txt")。但是此时,fs.appendFile() 找不到那个位置。所以,我想,也许它需要来自根目录的路径。所以我手动传递了'/home/chronos/user/Downloads/foo.txt' 和fs.appendFile() 仍然找不到文件。
所以,整篇文章都是在询问 node 的 fs 模块如何处理路径,以及我使用 browserify 时根目录的位置。
谢谢。
【问题讨论】:
-
您似乎在问两个不同的问题。考虑单独询问他们,以便正确应用您的问题标签。
-
你说得对。我想在我开始提问之前,我需要重新组合并再次尝试定义问题。
标签: javascript node.js google-chrome-app browserify