2016-10-21 2 views
1

У меня проблема с угловым. Мой угловой код отлично работает, когда я запускаю его в одиночку, но не работает, когда я обращаюсь к нему на localhost с помощью выражения. Случается, что он отображает только файл html. мой код сервера: *Угловой код не работает с экспресс

var express = require('express'), 
    app  = express(); 
app.get('/', function(req, res) { 
    res.sendfile('./app/client/main.html'); 
}); 
app.listen(3000, function() { 
    console.log('I\'m listening...'); 
}) 

мой угловой код контроллера

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

app.controller('mainController', function($scope){ 

    $scope.posts = []; 
    $scope.newPost = {created_by: '', text: '', create_at: ''}; 

     $scope.post = function(){ 
     $scope.newPost.created_at = Date.now(); 
     $scope.posts.push($scope.newPost); 
     $scope.newPost = {created_by: '', text: '', created_at: ''}; 
    }; 
}); 

и angularised HTML код

<!--main.html--> 
<!doctype html> 
<html> 
    <head> 
    <title>Tiks</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script> 
    <script src="javascripts/tiks.js"></script> 
    </head> 
    <body ng-app="tiks"> 
    <div id='main' ng-controller="mainController"> 
    <form ng-Submit="post()"> 
     <input required type="text" placeholder="Your name" ng-model="newPost.created_by" /> 
     <textarea required maxlength="200" rows="3" placeholder="Say something" ng-model="newPost.text"></textarea> 
     <input class="button" type="submit" value="Chirp!" /> 
     </form> 
     <div id="post-stream"> 
     <h4>Tiks Feed</h4> 
       <div class='post' ng-repeat="post in posts | orderBy:'created_at':true" ng-class-odd="'odd'" ng-class-even="'even'"> 
      <p>{{post.created_by}} says {{post.text}} at {{post.created_at}}</p> 
      </div> 
     </div> 
     </div> 
    </div> 
    </body> 
</html> 

пожалуйста, помогите

+0

Вы не предлагаете экспресс для обслуживания вашего статического контента https://expressjs.com/en/starter/static-files.html –

ответ

2

Ваш HTML спрашивает для javascripts/tiks.js на script, но на вашем сервере нет маршрута, настроенного для его обслуживания.

Попробуйте выполнить сделанные запросы, например используя Google Chrome Developer tools network tab, и вы увидите ошибку 404, когда запрашивается файл .js.

Вы должны использовать express.static для обслуживания файлов из папки, а не для определения конкретных ресурсов по отдельности, как это делается для ./app/client/main.html.

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

, то вам нужно будет получить доступ к http://localhost/main.html, чтобы получить к нему доступ.

+0

Вы должны предложить, как исправить это, то есть использовать промежуточное программное обеспечение для обработки статических файлов https://expressjs.com/en/starter/static-files.html –

+0

@JuanMendes true, done. Спасибо, что указали это :) –

+0

10x для вашего ответа, как я могу добавить маршрут? –

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