2015-07-06 45 views
3

我在創建之後應該打開一個目錄的功能,開放目錄中的Node.js和節點的WebKit

setTimeout(function() 
{ 
    var fs = require('fs'); 
    console.log(newPath); 
    var open = fs.opensync(newPath, 'r'); 
}, 2500); 

但這似乎並沒有工作。我收到以下錯誤

首先,

TypeError: undefined is not a function at eval (eval at <anonymous> (file:///Users/proslav/Library/Developer/Xcode/DerivedData/trackingCore-ecxfviftqracjxhimcuhhhvyddso/Build/Products/Debug/trackingCore.app/Contents/Resources/timeBroFront.app/Contents/Resources/app.nw/js/jquery-1.10.2.min.js:3:4994), :43:18)

和第二個是,

Uncaught ReferenceError: require is not defined

我在想,這可能是因爲我的變量newpath是undefinded但日誌顯示我的正確的鏈接。 var fs = require('fs');的目錄創建工作正常。

我在這裏做錯了什麼?

+0

看起來你在客戶端的JS文件有這個石灰,必須有它的服務器端文件。 –

+0

我被困在這裏一點點。使用node-webkit,服務器端JS文件如何在Node.js中看起來像? – Silve2611

+0

查看鏈接的答案,它也應該解決你的情況。 –

回答

4

我發現它是如何做的。 Node-webkit爲此提供了一個功能。它正在使用MAC,並且還應該在Windows上工作。 下面的函數是一個示例函數。 nw.guigui.Shell.showItemInFolder爲我做了這件事。 Thx爲輸入。

/*--------- 
Open Folder 
---------*/ 
function openFolder(path){ 
    var gui = require('nw.gui'); 
    gui.Shell.showItemInFolder(path); 
} 
1

在nw.js版本0.13或更高版本,使用:

nw.Shell.showItemInFolder(fullpath); 

版本< 0.13:

var gui = require('nw.gui'); 
gui.Shell.showItemInFolder(fullpath); 

注意,完整路徑名稱是必需的。如果它不存在,它將默默地失敗。

如果路徑是一樣的東西C:\ FOO \跳回到bar.txt,它會打開文件夾,並突出顯示文件跳回到bar.txt

如果路徑是C:\ FOO \ foo2的,它會打開文件夾,突出foo2的(我預計它打開文件夾foo2的的文件夾,但它會打開父)。


要找到運行的應用程序的FULLPATH,因爲我們不能在我們的前端使用節點功能(這就是爲什麼你有錯誤試圖加載FS模塊),我創建了一個節點模塊(utils.js)有以下幾點:

exports.getFullPath = function(fileName) { 
    var path = require('path'); 
    return path.resolve(__dirname, fileName); 
} 

在前端:

function openFolder(path) { 
    var utils = require('./utils'); 
    var fullpath = utils.getFullPath(path); 
    nw.Shell.showItemInFolder(fullpath); 
}