Ошибка GET MEAN

Я изучаю, как использовать стек MEAN для создания веб-приложений, и пока это было очень весело. Вместо того, чтобы использовать генераторы йоменов или приложение npm для создания моего кода для меня, я создавал все свое приложение с нуля. Таким образом, я знаю, как каждая часть соединяется и что происходит с моим приложением. Я только начинал подключать переднюю и заднюю часть моего приложения, когда смотрел на консоль разработчика и видел

GET http://blog.dev/bower_components/angular/angular.js

Не только angular, но и каждый другой ресурс, который у меня есть (Modernizr, angular -routes, mootools, restangular и т.д.). Когда вы используете генератор yoman angular, вы должны запустить команду grunt serve для запуска стороны angular. Поскольку я создал приложение с нуля, и я использую npm для моего инструмента построения, я не знал, как создать внешний сервер. Итак, я просто пошел с простым виртуальным хостом nginx, указав на свой index.html. Здесь config:

server {
        listen 80;

        server_name blog.dev;

        root /home/michael/Workspace/blog/app;
        index index.html index.htm;

        location / {
                try_files $uri $uri/ =404;
        }
}

Я не уверен, какие другие переменные могут повлиять на ситуацию, поэтому, если я что-то пропустил, скажите мне, и я буду рад предоставить вам то, что вам нужно!

Ответ 1

Если вы используете средний стек, вы должны иметь возможность размещать как задний конец, так и напрямую обращаться к интерфейсу с помощью node.

Я не уверен в вашей структуре проекта, но вот структура для той, над которой я сейчас работаю.

/bin --contains a file called www.js (used to launch app)
/data
/models
/node_modules
/public -- contains my angular implementation
/routes -- contains express routes
/temp
/upload
/views
app.js -- main configuration for express
api.js -- my apis
package.json

в файле /bin/www.js у вас есть код для запуска вашего сервера node.

var app = require('../app');

app.set('port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});        

Вам также нужно будет настроить экспресс и ваши маршруты, чтобы сначала просмотреть маршруты в каталоге маршрутов у меня есть файл index.js

В этом файле я определяю один маршрут, который приводит к моей странице angular index.html.

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

/* GET home page. */
router.get('/', function(req, res) {
res.redirect('/pages/index.html');
});

module.exports = router;

И, конечно, вам нужно настроить экспресс.

process.env.TMPDIR = 'tmp'; // to avoid the EXDEV rename error, see            http://stackoverflow.com/q/21071303/76173

var express = require('express');
var path = require('path');
var favicon = require('static-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var multer = require('multer');
var flow = require('./flow-node.js')('tmp');
var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
var uuid = require('uuid');
var mongoose = require('mongoose');
var session = require('express-session');

var routes = require('./routes/index');

var app = express();

app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(session({genid: function(req) { return uuid.v4()}, secret:   'XXXXXXXXXXX',
    saveUninitialized: true,
    resave: true}));
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/users', users);

module.exports = app;

Теперь, предполагая, что у вас есть ваши файлы angular и javascript в каталоге "public", вы можете запустить node с помощью следующей команды.

node bin/www

И укажите ваш браузер http://localhost:3000 и будьте в бизнесе.

Надеюсь, что это поможет и счастливое обучение.