2016-12-28 4 views
0

Я на 100% новичок в стеке MEAN и в настоящее время пытаюсь самостоятельно изучить его с помощью этого video by Michael Moser (Если вы читаете это, спасибо за создание такого легко понять видео! :)). Я пытаюсь сделать очень базовую программу с функциями CRUD, но я не могу пройти это конкретное сообщение об ошибке при загрузке файла Angular JS. Может кто-нибудь указать мне в правильном направлении?MEAN stack - Ошибка при загрузке скрипта AngularJS

enter image description here

Вот мои коды:

package.json

{ 
    "name": "starter-node-angular", 
    "main": "server.js", 
    "dependencies": { 
    "body-parser": "~1.4.2", 
    "express": "^4.5.1", 
    "method-override": "~2.0.2", 
    "mongoose": "~3.8.0" 
    } 
} 

server.js

// modules needed 
// express - middleware 
var express   = require('express'); 
var app    = express(); 

// listens for request to server and throws main.html as response 
app.get('/', function(req,res) { 
    res.sendfile(__dirname + '/client/views/main.html'); 
}); 

// listens for request to server with 'scripts' in it and returns the appropriate file declared 
// in the script tag 
app.use('/scripts', express.static(__dirname + '/client/scripts')); 

app.listen(3000, function(){ 
    console.log("Ready..."); 
}); 

HTML

<html ng-app="ProductApp"> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.js" type="text/javascript"></script> 
    <script type="text/javascript" src="/client/scripts/main.js"></script> 
    <!-- stylesheets --> 
    <link href="/styles/main.css" rel="stylesheet" type="text/css"> 
</head> 

<body class="main-background" ng-controller="MainController"> 
    <!-- Area for Logo and Search Bar --> 
    <div class="header"> 
     <div class="main-logo"> 
      STUFF - Product Inventory v1.0 
     </div> 

     <div class="main-search"> 
      <input type="text" class="search-field" placeholder="What are you looking for?" /> 
      <img src="images/search-icon.png" title="Search" class="search-ico" /> 
     </div> 
    </div> 

    <!-- Area for Add Button --> 
    <div class="add-container"> 
     <div class="add-button" ng-click="addProduct(test);"> 
      <img src="images/add-icon.png" title="Add" class="add-ico" /> 
      <span class="add-text">Add Product</span> 
     </div> 
    </div> 

</body> 
</html> 

AngularJS

'use strict'; 

var app = angular.module('ProductApp', []); 

// Main controller 
app.controller('MainController', ['$scope', function ($scope) { 
    // Search Products 
    $scope.searchProduct = function (param) { 
     // Search fxn goes here... 
    } 

    // Add products 
    $scope.addProduct = function (param) { 
     alert('Add product'); 
    } 

    // Edit Products 
    $scope.updateProduct = function (param) { 
     // Update fxn goes here... 
    } 

    // Delete Product 
    $scope.deleteProduct = function (param) { 
     // Delete fxn goes here 
    } 
}]); 

Я приехал из фона, на котором призывают JS файлы просто объявляющего полный путь в src. Tbh, я считаю, что вся настройка MEAN немного сложна, с концепцией «промежуточного ПО» и т. Д. :(Я ценю роль MongoDB в нем, хотя.

В любом случае, любая помощь и советы будут оценены. Бог знает, что нужно много его прямо сейчас.

Спасибо.

Update 1: Я попытался изменить, как мой <script> тег называет мой угловатый, как это так, без успеха:

<script type="text/javascript" src="C:/users/myusername/documents/practice/product db/client/scripts/main.js"></script> 

Кроме того, я прав, полагая, что localhost:3000 относится до Продукт DB в следующей структуре каталогов? Я знаю, что 3000 - номер порта; после просмотра моих журналов ошибок я думал, что localhost - это просто псевдоним исходной папки приложения.

enter image description here

Полный путь C: \ Users \ Имя_пользователя \ Documents \ Practice \ Продукт DB ...

Спасибо, как всегда. :)

+0

Выясните, правильно ли загружены все файлы на страницу? – 31piy

+0

Ошибки указывают на то, что ваши сценарии просто не найдены, поэтому приложение не может загрузиться. Вы можете видеть запросы на всевозможные сбои (ваши файлы css и т. Д.). В индексе.html, проверьте атрибут baseref (должен быть первым в разделе заголовка), и в противном случае убедитесь, что приложение знает, где найти эти файлы (особенно main.js). Что произойдет, если вы попробуете что-то вроде «./client/scripts/main.js» и т. Д. –

+0

Я не совсем уверен, как это подтвердить, но HTML загружается всякий раз, когда я вызываю 'localhost: 3000'. Я не могу сказать то же самое для своих JS и CSS. –

ответ

1

Вы указали ng-app в теге HTML, попробуйте добавить его в body страницы.

ли это:

<body class="main-background" ng-app="ProductApp" ng-controller="MainController">

Update:

вы сделали несколько ошибок при выборке таблицы стилей и скрипты обоих. Вам необходимо определить правильный статический маршрут , который будет работать на всех static files(stylesheets and scripts).

вы определили Yous статические маршрутизации, как это:

app.use('/scripts', express.static(__dirname + '/client/scripts')); 

Это покажет приложение узла, чтобы посмотреть в client/scripts папку, если static маршрут начинается с /scripts. Но вы пытаетесь получить свой script, используя src="/client/scripts/main.js", который ничего не получит, так как /client не определен, и не задан маршрут по умолчанию '/'. Вместо этого оно должно быть src="/scripts/main.js".

Еще одна ошибка - выборка stylesheets. вы используете href="/styles/main.css", где не задано ни /styles, ни /, поэтому он не сможет получить файл css.

Попробуйте вместо этого:

Server.js

//define static routes like this 
app.use(express.static(__dirname + '/client')); 
// this will tell node app to look into the client folder, for any static file 

HTML:

Fetch все ваши файлы, как показано ниже:

Чтобы получить таблицы стилей :

использование /styles/filename

<link href="/styles/main.css" rel="stylesheet" type="text/css"> 

Это будет выглядеть в styles папку внутри папки client.

Чтобы получить скрипты:

использование /scripts/filename

<script type="text/javascript" src="/scripts/main.js"></script> 

Это будет выглядеть в scripts папку внутри папки client.

+0

Благодарим за отзыв. Я попробовал, но это не сработало. :( –

+0

Пожалуйста, посмотрите мой обновленный ответ. –

+0

Спасибо за подробное объяснение! Наконец-то удалось заставить его работать. :) –

Смежные вопросы