2015-02-11 20 views
10

Tôi đang cố gắng chạy một tệp Javascript với Nút để đăng cập nhật blog lên Tumblr.xác định không được định nghĩa Javascript Node

Cho đến nay trong main.js tôi nộp Tôi có điều này:

// Tumblr Information 
var tumblr = require('./vendor/tumblr'); 
tumblr.request(require('request')); 
var Blog; 

var jq = require('./vendor/jquery-1.11.1.min'); 
var reqq = require('./vendor/require'); 
var inher = require('./vendor/inheritance'); 

var grammars = require('./tracery/grammar'); 

Nhưng sau đó tôi nhận được lỗi sau khi tôi chạy main.js nút

ReferenceError: define is not defined 
    at Object.<anonymous> (B:\Documents\Google Drive\Programming\CMPM 147 Tracery\Tumblr Tracery\js\ 
tracery\grammar.js:6:1) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (B:\Documents\Google Drive\Programming\CMPM 147 Tracery\Tumblr Tracery\js\ 
main.js:11:16) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 

Và đây là nơi mà các lỗi đang bị ném vào tệp ngữ pháp.js:

define(["./modifiers", "./node"], function(universalModifiers, Node) {'use strict'; 

    // other stuff... 
}); 

Tôi không nghĩ rằng mô-đun đang được tải đúng cách vì nó nói rõ hàm định nghĩa không được định nghĩa. Tôi tin rằng chức năng này đến từ requireJS nhưng tôi không nghĩ rằng tôi đang tải nó đúng cách. Có ai có bất cứ đề nghị về lý do tại sao xác định có thể không được xác định, hoặc gợi ý về cách tải các mô-đun chính xác?

Cảm ơn bạn.

+0

Phần tumblr của mã không được gửi khiếu nại. Tôi nhận được phần tumblr làm việc tìm thấy nhưng dòng gây ra vấn đề là: var ngữ pháp = yêu cầu ('./Tracery/ngữ pháp') – leaflet757

+0

Ah, tôi thấy - phần tumblr của con đường dẫn tôi theo cách đó . –

+0

Tại sao bạn sử dụng 'define'? Đó không phải là cách bạn xác định một mô-đun trong Node.js –

Trả lời

13

Dường như bạn đang cố tải một thư viện được mã hóa theo mẫu AMD (Mô-đun không đồng bộ mô-đun), mà Node không hỗ trợ nguyên bản. Nó là hoàn toàn có thể cho tác giả của một thư viện để viết thư viện như vậy để nó có thể được nạp trong Node. Người dùng thư viện phải mở rộng khả năng tải mô-đun của Node để hiểu AMD để tải thư viện đó.

Có nhiều trình tải bạn có thể sử dụng, bộ tải tôi sử dụng là amd-loader. Sau khi cài đặt với npm, bạn chỉ cần thêm

require("amd-loader"); 

trước khi bạn tải bất kỳ mô-đun AMD nào.

+0

Tuyệt vời, đã khắc phục được sự cố! Tôi đã không nhận ra thư viện được viết trong mẫu AMD. Tôi vẫn còn rất mới với Node và Javascript cho vấn đề đó. Cảm ơn một lần nữa vì sự giúp đỡ của bạn! – leaflet757

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