2014-10-11 12 views
12

Tôi có dự án node-webkit với số main.js. Ở phía trên rất, tôi cóNode.js không thể yêu cầu tệp .js trong cùng một thư mục

var updater = require("./updater.js"); 

và tôi có một file có tên updater.js trong cùng thư mục với main.js. Khi tôi chạy ứng dụng, tôi nhận được lỗi

Uncaught Error: Cannot find module './updater.js' 

updater.js có một dòng trong đó:

module.exports = "Hello!"; 

Tôi không có ý tưởng tại sao nó không thể đòi hỏi các tập tin. Tôi đã thấy một dự án khác làm điều tương tự. Tôi có thể require thường xuyên npm mô-đun tốt từ cùng một main.js.

+0

Bạn có quyền đọc cho 'updater.js' không? – LotusH

+0

Và cách bạn bắt đầu nút? Bạn đã bắt đầu nút trong thư mục này trực tiếp bằng cách gõ 'node main.js'? Nếu bạn sử dụng một số người trợ giúp thì 'cwd' có thể đã thay đổi. – LotusH

+0

là bạn đang sử dụng 'nút chính' trong thư mục' main.js' đang ở trong, khi nó ném lỗi này, hoặc bạn đang tải trong 'main.js' như một mô-đun trong một tập lệnh khác? –

Trả lời

16

Điều này là do, khi bạn chạy ứng dụng của bạn (main.js) bằng cách sử dụng nút-webkit thư mục gốc (làm việc) là nơi index.html đang ở, vì vậy './' đề cập đến thư mục đó không phải là một trong . mà tập tin bạn yêu cầu các mô-đun từ nằm trong

bạn có thể dễ dàng giải quyết vấn đề này bằng cách sử dụng resolve method in 'path' node module và cung cấp các đầu ra từ nó với phương pháp đòi hỏi trong tập tin làm việc của bạn

Đơn giản chỉ cần làm như sau:

var path = require('path'); 
var updater = require(path.resolve(__dirname, "./updater.js")); 

CHỈNH SỬA: thông tin về globa l đối tượng nút '__dirname' (và các đối tượng khác) có thể tìm thấy here.

+0

Plus 1 cho liên kết tới tài liệu – SeanRamzan

Các vấn đề liên quan