2015-04-29 10 views
14

Ho imparato a utilizzare lo stack MEAN per creare applicazioni Web e finora è stato molto divertente. Invece di usare i generatori yeoman o l'app npm per generare il mio codice per me, ho creato da zero la mia intera app. In questo modo so come ogni pezzo si connette e cosa sta succedendo con la mia app. Stavo cominciando a collegare l'estremità anteriore e posteriore della mia app quando ho guardato la console sviluppatore e ho vistoErrore GET MEAN App

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

Non solo angolare, ma ogni altra risorsa che ho (Modernizr, angolari-routes, MooTools, restangular , eccetera ...). Quando si utilizza il generatore angolare yeoman, si suppone di eseguire il comando grunt serve per avviare il lato angolare. Perché ho creato l'app da zero e sto usando npm per il mio strumento di compilazione, non sapevo come costruire il front end server. Quindi, sono appena andato con un semplice host virtuale nginx che punta al mio index.html. Ecco la configurazione:

server { 
     listen 80; 

     server_name blog.dev; 

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

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

Non sono sicuro di quali altre variabili non influenzino la situazione, quindi se ho perso qualcosa mi dica e sarò felice di darvi quello che ti serve!

+0

Controllare le autorizzazioni su cartelle/file, potrebbe essere nginx l'utente non può leggere da esso. – vanadium23

+0

No:/Ho provato chmod -R 755 sull'intero progetto e nulla è cambiato. – Michaelslec

+0

Verifica i percorsi. I file sono lì? – pykiss

risposta

5

Se si utilizza lo stack medio, si dovrebbe essere in grado di ospitare sia il back-end che il front-end direttamente con il nodo.

Non sono sicuro della struttura del progetto, ma ecco la struttura di cui sto lavorando ora.

/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 

nel file /bin/www.js si ha il codice per avviare il server nodo.

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); 
});   

Avrete anche bisogno di Express Setup e tuoi percorsi così ben guardare percorsi prima nella directory rotte ho un file chiamato index.js

In questo file, mi definisco un percorso che porta alla mia pagina index.html angolare.

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

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

module.exports = router; 

E ovviamente è necessario impostare Express.

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; 

Ora a patto di avere i file angolari e javascript nella directory 'pubblico' da qualche parte, si dovrebbe essere in grado di avviare il nodo con il seguente comando.

node bin/www 

E il punto il tuo browser allo http://localhost:3000 ed essere in affari.

Spero che questo aiuti e un felice apprendimento.

Problemi correlati