gpt4 book ai didi

node.js - expressjs 中的两个应用程序

转载 作者:搜寻专家 更新时间:2023-10-31 23:49:12 24 4
gpt4 key购买 nike

我正在使用 express js 构建一个应用程序,它将有不同的客户端,如网络和移动。我不想同时使用一个应用程序,因为一些中间件会带来额外的负担。比如 session 中间件。那么一个项目有没有可能有两个应用程序。它是如何工作的?

最佳答案

你在express中制作的app对象是一个function(req,res,next),适合Express自己的中间件链。因此,您可以使用 app.use 将与前导路径片段匹配的请求发送到在别处定义的应用。

文档:http://expressjs.com/api.html#app.use

$ npm install express

//mobile.js
var app = require('express')();
app.get('/', function(req, res){
res.send('Mobile Route')
});
module.exports = app;


//desktopApp.js
var http = require('http');
var express = require('express');
var desktopApp = express();
var mobileApp = require('./mobile.js');

desktopApp.use('/mobile', mobileApp)
desktopApp.use(desktopApp.router);
desktopApp.use(express.errorHandler());

desktopApp.get('/', function(req, res){
res.send('Desktop Route')
});

desktopApp.get('/mobile', function(req, res){
// Because Express respects the order that you set up the middleware chain,
// the mobileApp `/mobile` route gets first dibs to send a response or next()
res.send('Inaccessible Desktop Route')
});

desktopApp.get('/mobile/foobar', function(req, res){
// When mobileApp can't find any suitable route matching this path, it gives
// up, and desktopApp continues to pass the request down the middleware stack.
// It ends up matching this route, where we send a response
res.send('Desktop Route')
});

http.createServer(desktopApp).listen(3000, function(){
console.log('Listening on 3000');
});


// Results
$ curl localhost:3000/
Desktop Route

$ curl localhost:3000/mobile/
Mobile Route

关于node.js - expressjs 中的两个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17233068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com