设置三个 expresss 实例:admin、site 和 app
Setting up three expresss instances: admin, site and app
朋友们,我认为自己是一个javascript中级程序员,但这些问题听起来很业余,请见谅。
我在 Ghost.org 博客平台 (CMS) 中进行逆向工程..试图了解他们是如何做到的,我发现他们有三个实例 express()
:parentApp、blogApp和 adminApp。
parentApp
负责 运行 网站建设,另外两个负责 admin
和 blog
。
我试图更进一步,但是代码是一坨面。所以...
我尝试做同样的事情来理解如果我需要的话我该如何使用这个配置...
首先我创建了一个名为 app.js
的主要实例,另外 'minor' 两个:site.js
和 admin.js
.
我已经设置了模板引擎,每个人都有自己的观点的文件夹,并发送 app
实例以侦听端口 3000(像往常一样)。
问题来了:
站点或管理员不 运行ning,我想了解如何创建它 运行。我还必须创建一个服务器并监听这些实例吗?
这真的让我感到困惑,因为我查看了他们的代码,但根本无法找到,因为他们只在 parentApp 上侦听并且仍然导致站点识别其他实例的路由、中间件等。
谢谢你,我很抱歉我的英语不完美,我尽力了。
我不知道这是否是您想要的,但您可以像使用任何其他中间件一样使用 express。有人可能会改进这个例子,但请看一下。我创建了一个开箱即用的 express 应用程序,然后添加了另一个 express 实例作为中间件。为了便于阅读,我在这里删除了除必需品以外的所有内容。
var express = require('express');
var path = require('path');
var routes = require('./routes/index');
var users = require('./routes/users');
var adminRoutes = require('./admin/routes/index');
var app = express();
var admin = express();
admin.use('/', adminRoutes);
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
admin.set('views', path.join(__dirname, 'admin/views/'));
admin.set('view engine', 'jade');
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/users', users);
app.use('/', admin);
module.exports = app;
在 admin/routes/index.js 中,我创建了一个到“/admin”的路由。
router.get('/admin', function(req, res, next) {
res.render('index', { title: 'Express Admin' });
});
朋友们,我认为自己是一个javascript中级程序员,但这些问题听起来很业余,请见谅。
我在 Ghost.org 博客平台 (CMS) 中进行逆向工程..试图了解他们是如何做到的,我发现他们有三个实例 express()
:parentApp、blogApp和 adminApp。
parentApp
负责 运行 网站建设,另外两个负责 admin
和 blog
。
我试图更进一步,但是代码是一坨面。所以...
我尝试做同样的事情来理解如果我需要的话我该如何使用这个配置...
首先我创建了一个名为 app.js
的主要实例,另外 'minor' 两个:site.js
和 admin.js
.
我已经设置了模板引擎,每个人都有自己的观点的文件夹,并发送 app
实例以侦听端口 3000(像往常一样)。
问题来了:
站点或管理员不 运行ning,我想了解如何创建它 运行。我还必须创建一个服务器并监听这些实例吗?
这真的让我感到困惑,因为我查看了他们的代码,但根本无法找到,因为他们只在 parentApp 上侦听并且仍然导致站点识别其他实例的路由、中间件等。
谢谢你,我很抱歉我的英语不完美,我尽力了。
我不知道这是否是您想要的,但您可以像使用任何其他中间件一样使用 express。有人可能会改进这个例子,但请看一下。我创建了一个开箱即用的 express 应用程序,然后添加了另一个 express 实例作为中间件。为了便于阅读,我在这里删除了除必需品以外的所有内容。
var express = require('express');
var path = require('path');
var routes = require('./routes/index');
var users = require('./routes/users');
var adminRoutes = require('./admin/routes/index');
var app = express();
var admin = express();
admin.use('/', adminRoutes);
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
admin.set('views', path.join(__dirname, 'admin/views/'));
admin.set('view engine', 'jade');
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/users', users);
app.use('/', admin);
module.exports = app;
在 admin/routes/index.js 中,我创建了一个到“/admin”的路由。
router.get('/admin', function(req, res, next) {
res.render('index', { title: 'Express Admin' });
});