2017-09-22 7 views
0

MEANアプリケーションのベースを設定しようとしています。 Angular CLIを使用して新しいプロジェクトを作成し、Express.js、MongoDBモジュールをアプリケーションに追加しました。MEANアプリケーション設定でルートをAngularアプリケーションにリダイレクトしない

var express = require('express'); 
var bodyParser = require('body-parser'); 
var session = require('express-session'); 
var path = require("path") 
var app = express(); 

var conf = require('./config/conf'); 
var server = require('http').Server(app); 

var mongoDB = require('./adapters/mongodb') 
var mongoClient = new mongoDB(conf); 

app.use(bodyParser()); 

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 

app.get('*', (req, res) => { 
    res.sendFile(path.join(__dirname, 'dist/index.html')); 
}); 

app.use(function (req, res, next) { 
    res.setHeader('Access-Control-Allow-Origin', '*'); 
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type,__setXHR_'); 
    res.setHeader('Access-Control-Allow-Credentials', true); 
    next(); 
}); 

mongoClient.connect(function (dbconn) { 
    app.dbconn = dbconn; 
    app.conf = conf; 
    console.log("************************************************************"); 
    console.log(new Date() + ' | CRUD Server Listening on ' + conf['web']['port']); 
    console.log("************************************************************"); 
    server.listen(conf['web']['port']); 
    var Routes = require('./routes/http-routes'); 
    new Routes(app); 
}); 

Iセットアップ今のhello世界のルートと私は角度のデフォルトの開始ページに着陸う意味角度ソースに行われていない変更、:app.jsファイルで、私は以下の構成を有しています。しかし、私はそのページではなく、白い画面のページに土地を傾ける。しかし、私は郵便配達員を使ってルートにアクセスすることができます。私はng buildを実行してからnode app.jsを実行してアプリケーションを実行します。私は間違って何をしていますか?

+0

あなたは、ルーティングのために、角度コードを表示することができますし、あなたが空白のページを取得するとき、あなたはまた、コンソールでエラーになります、また、なぜあなたはあなたのルートをデータベース接続に入れますか?ルートを扱うための高速な方法があります –

答えて

1

あなたは次にあなたが結論には

const authentication = require('./routes/authentication')(router); 

唯一の認証ルートを使用してファイルを持っていると仮定してみましょうルートに

まず

const router=express.Router(); 

を処理するために、Expressの方法を使用する必要があります操作を行います。

app.use('/authentication', authentication); 

これは、あなたはより多くの詳細が読むためにあなたは、ルータモジュールを必要とする角度のルートを設定するには、このよう

module.exports= (router)=>{ 

router.get('/',(req,res)=>{ 
res.json(message:'Hello World'); 
}); 

return router; 

あなたのルートを使用ちゃうあなたのルートのより良いdivisonが

ことができますthe documentation

1

あなたはAngular Appからindex.htmlのみを提供します。しかし、あなたはまた、資産、CSSとjavascriptを提供する必要があります。最も簡単にはこのようなものになるだろう(ただし、ディレクトリ名を調整する必要があります。

app.use('/js', express.static(path.resolve(__dirname, 'dist/js'))); 
app.use('/css', express.static(path.resolve(__dirname, 'dist/css'))); 
app.use('/assets', express.static(path.resolve(__dirname, 'dist/assets'))); 
関連する問題