2015-03-22 28 views
10

Vì vậy, tôi hoàn toàn mới đối với nút nhưng tôi đã tìm ra cách cài đặt node_modules. Những gì tôi đang cố gắng tìm ra là làm thế nào để bao gồm đúng 'Góc' vào mã của tôi.Sử dụng yêu cầu ('góc') trong nút cho Cửa sổ không được xác định

Vì vậy, từ mới nhanh 4 xoáy lên, tôi đã làm:

npm install --save angular 

Sau đó, tôi đi vào routes/index.js và thêm require('angular'):

var express = require('express'); 
var router = express.Router(); 
require('angular'); 

/* GET home page. */ 
router.get('/', function(req, res, next) { 
    res.render('index', { title: 'Express' }); 
}); 

module.exports = router; 

Nhưng khi tôi làm đầu nút tôi nhận được một lỗi mà nói:

ReferenceError: window is not defined 
    at Object.<anonymous> (/Users/al/Projects/node/podcastsearch/podcast/node_modules/angular/angular.js:26307:4) 
    at Module._compile (module.js:460:26) 
    at Object.Module._extensions..js (module.js:478:10) 
    at Module.load (module.js:355:32) 
    at Function.Module._load (module.js:310:12) 
    at Module.require (module.js:365:17) 
    at require (module.js:384:17) 
    at Object.<anonymous> (/Users/al/Projects/node/podcastsearch/podcast/node_modules/angular/index.js:1:63) 
    at Module._compile (module.js:460:26) 
    at Object.Module._extensions..js (module.js:478:10) 

Cách thích hợp để bao gồm góc là gì?

Trả lời

7

Góc là thư viện tập lệnh trình khách. Node JS yêu cầu các mô đun node tải và Angular không phải là một module Node.

Trong trang HTML của bạn, bạn nên làm một cái gì đó như thế này:

<html> 
    <head> 
    <title>My Angular App!</title> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.10/angular.min.js"></script> 
    <script src="app.js"></script> 
    </head> 
    <body ng-app="flapperNews" ng-controller="MainCtrl"> 
    <div> 
     {{test}} 
    </div> 
    </body> 
</html> 

Cập nhật: Dựa trên nhận xét. Mô-đun góc - https://www.npmjs.com/package/angular

Tìm nạp tệp js góc cạnh cho bạn và lưu chúng trong thư mục mô-đun nút. Góc vẫn còn là một thư viện phía khách hàng và bạn cần phải thêm một thẻ script trong HTML của bạn để sử dụng góc cạnh. Bạn không nên yêu cầu nó trong mã nút. Vui lòng kiểm tra các mẫu được đưa ra trong liên kết đó.

khác bạn có thể nghĩ rằng sử dụng đòi hỏi js, js đầu, browserify vv trên phía client

+0

Tôi đọc trang npm góc cạnh https://www.npmjs.com/package/angular và nó cho biết tôi có thể đưa nó qua tập lệnh hoặc yêu cầu ('góc cạnh'). Tôi hoàn toàn nhận thức rằng góc là phía khách hàng. Tôi tò mò tại sao trang mô-đun nói rằng nó có thể được sử dụng thông qua một yêu cầu() – allencoded

+2

@allencoded Bạn có thể sử dụng 'require()' trong kịch bản phía máy khách của bạn bằng cách sử dụng Browserify cho tương tự. – Brad

+0

Ah cảm ơn brad mà xóa nó ngay lập tức. Tôi biết góc là một thư viện phía khách hàng chỉ không biết đủ về yêu cầu() Tôi giả sử. Tôi đã biết tôi chỉ có thể bao gồm nó bằng cách đi node_modules/angular/angular.js trong html của tôi nhưng muốn thực hiện yêu cầu spiffy() – allencoded

1

Cập nhật cho @AnujYadav 's câu trả lời bằng webpack phiên bản 3.4.1:

Cài đặt góc:

npm install angular --save-dev 

Config (trong webpack.config.js tập tin):

module.exports = { 
    entry: { 
     angular: path.resolve(__dirname, './node_modules/angular/angular') 
    }, 
    output: { 
     ... 
    }, 
    module: { 
     ... 
    } 
}; 

Trong trang html:

<script src="/{your_path}/angular.js"></script> 
<script> 
    // you can use 'angular' now  
</script> 
Các vấn đề liên quan