Experess.js + angularjs отдельная маршрутизация

0

У меня проблема с настройкой экспресс-+ углового приложения.

Я могу загрузить в него файлы активов.

Я напишу здесь свой код из файла express и html. Насколько я вижу, Express возвращает только файл index.html и ничего больше, поэтому все маршруты возвращают этот файл.

Вот экспресс-код:

//server.js

// set up ========================
var express = require('express'),
    bodyParser = require('body-parser'),
    morgan = require('morgan'),
    path   = require('path'),
    app    = express(),
    mongoose = require('mongoose'),
    jwt    = require('jsonwebtoken'), // used to create, sign, and verify tokens
    config = require('./config'), // get our config file
    User   = require('./model/users'), //get our mongo model
    routes = require('./middleware/routes'); 

// configuration =================
//var port = process.env.PORT || 8080;
app.use(express.static('/client'));
app.use(morgan('dev'));
app.use(bodyParser.urlencoded({'extended':'true'}));          
app.use(bodyParser.json());                                    
app.use(bodyParser.json({ type: 'application/json' }));
mongoose.connect(config.database);
app.set('superPin', config.secret);
// start server =================
//
app.listen(8080);
console.log('App strated and is listening on the port 8080');
//
app.get('/checkServer', function(request,response){
    response.send('Works fine. Server started at default get routing to check if server runns.');
});
//
app.get('*',function(request,response){
    response.sendFile(path.resolve('../client/view/index.html'));
});
//
//exports = module.exports = app;

и вот мой файл index.html:

<!DOCTYPE html>
<html>
  <head>
    <title>My </title>
  </head>
  <body ng-app="pmt">
    <div ng-view></div>
    <script src="client/assets/vendor/angular/angular.min.js"></script>
    <script src="client/assets/vendor/angular-bootstrap/ui-bootstrap.min.js"></script>
    <script src="client/assets/vendor/angular-message/angular-message.min.js"></script>
    <script src="client/assets/vendor/angular-touch/angular-touch.min.js"></script>
    <script src="client/assets/vendor/angular-ui-router/angular-ui-router.min.js"></script>
    <script src="client/assets/vendor/angular-touch/angular-touch.min.js"></script>
    <script src="client/assets/vendor/moment/min/moment.min.js"></script>
    <script src="client/controller/routes.js"></script>
  </body>
</html>

Я добавлю теперь экран печати из моей структуры папок: Изображение 174551

и вот ссылка на репо: https://bitbucket.org/cojok/pmt/

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

Я получаю эту ошибку в браузере Изображение 174551

  • 1
    Что именно ты пытаешься сделать? Вы хотите маршрутизацию на стороне сервера или угловую маршрутизацию?
  • 0
    не могу понять, в чем дело, которое вы делаете, и вам нужна помощь?
Показать ещё 1 комментарий
Теги:
express
url-routing

2 ответа

0

Я узнал свою ошибку, или это может быть только исправить. Но на самом деле это изменение

 app.use(express.static('/client'));
 app.get('*',function(request,response){
    response.sendFile(path.resolve('../client/view/index.html'));
});

к этому

 app.use('/client',express.static('../client/'));
 app.get('/',function(request,response){
    response.sendFile(path.resolve('../client/view/index.html'));
});

решил мою проблему.

Thnx

0

Насколько я понимаю, ваша проблема заключается в том, что вы не можете понять, как связывать файлы во взглядах или как устанавливать маршруты файлов в каталоге, поэтому здесь вы можете сделать это как Добавить каталоги, например

app.use(express.static(path.join(__dirname, 'scripts')));
app.use(express.static(path.join(__dirname, 'Content')));
app.use(express.static(path.join(__dirname, 'Angular')));
app.use(express.static(path.join(__dirname, 'Views/Main')));
app.use(express.static(path.join(__dirname, 'Views/Authentication')));

Поскольку контент, угловые и скрипты являются корневыми каталогами и ссылаются на файлы jquery как

<script src="angular-resource.js"></script> //in angular folder on root
<script src="angular-ui-router.js"></script> //in script folder on root
<script src="/Controllers/MainController.js"></script> // in angular folder with child directories

Ещё вопросы

Сообщество Overcoder
Наверх
Меню