利用者画面と管理画面を別々のポートで待ち受けたい

アプリ利用者側画面と管理者画面のインターフェースを分けたい場合

ポート番号を別々にして、違うアプリケーションのように見せることで

URLを手打ちされても、ポートが違うのでNotFoundとなり安心

 

#main.js

// ========================================= 
// Express Settings
// =========================================

const express = require('express'),
  app = express(),
  adminConsole = express(),
  path = require('path');

// --------------------------------------------------
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));
// --------------------------------------------------

adminConsole.set('port', 12345);
adminConsole.set('views', path.join(__dirname, 'views'));
adminConsole.set('view engine', 'ejs');
adminConsole.use(express.static(path.join(__dirname, 'public')));

// =========================================
// Load MiddleWare
// =========================================

const router = require('./routes/route'),
  adminRouter = require('./routes/adminRoutes');

app.use('/', router);
adminConsole.use('/admin', adminRouter);

// =========================================
// Start Node.js
// =========================================

app.listen(app.get('port'), () => {
  console.log(`AppServer running at http://localhost:${app.get('port')}`);
});

adminConsole.listen(adminConsole.get('port'), () => {
  console.log(`AdminConsole running at http://localhost:${adminConsole.get('port')}`);
});

 

上記例だと一般利用者はport3000でアクセスしてルーティングされ

管理者はport12345の/admin/で利用すると操作ができる。