Javascript 带有两个客户端版本的Express应用程序
我实现了一个带有服务器模块和客户端模块的express应用程序项目。我有两个版本的客户端-一个用于桌面,另一个用于移动设备。唯一的区别在于使用Angular ui router完成的布局和内部路由。通过使用express的Javascript 带有两个客户端版本的Express应用程序,javascript,angularjs,node.js,express,Javascript,Angularjs,Node.js,Express,我实现了一个带有服务器模块和客户端模块的express应用程序项目。我有两个版本的客户端-一个用于桌面,另一个用于移动设备。唯一的区别在于使用Angular ui router完成的布局和内部路由。通过使用express的express.staticmiddleware,两个版本的登录页相同 app.use(express.static(__dirname + "/client")); 我的服务器脚本正在端口9000上运行,如server.js中所述: var port = process.e
express.static
middleware,两个版本的登录页相同
app.use(express.static(__dirname + "/client"));
我的服务器脚本正在端口9000上运行,如server.js
中所述:
var port = process.env.PORT || 9000;
var server = require('http').createServer(app);
server.listen(port, function () {....}
我通过以下方式启动服务器:
node server.js
并通过以下方式启动我的主页:
http://localhost:9000
目前,我只能启动在express.static(\uu dirname+“/client”)
中传递的参数中定义的客户端的一个版本。如何从两个不同的设备启动两个不同版本的客户端?我应该如何托管我的express应用程序,以根据不同的设备获取客户端的不同根目录\u dirname
?
请帮助,我是Node.js的初学者快速回答
app.use('/desktop', express.static("path/to/desktop/site"));
app.use('/mobile', express.static("path/to/mobile/site"));
但在您的描述中,听起来移动和桌面站点将使用同一个网站,您只需要一个不同的url参数。在这种情况下,您可以执行以下操作:
app.use('/desktop', express.static("path/to/website"));
app.use('/mobile', express.static("path/to/website"));
现在,/desktop
和/mobile
端点都将呈现相同的网站。但是现在您可以捕获用户用来访问网站的端点 快速回答
app.use('/desktop', express.static("path/to/desktop/site"));
app.use('/mobile', express.static("path/to/mobile/site"));
但在您的描述中,听起来移动和桌面站点将使用同一个网站,您只需要一个不同的url参数。在这种情况下,您可以执行以下操作:
app.use('/desktop', express.static("path/to/website"));
app.use('/mobile', express.static("path/to/website"));
现在,
/desktop
和/mobile
端点都将呈现相同的网站。但是现在您可以捕获用户用来访问网站的端点 您可以在每个GET/POST HTTP请求中发送GET/POST
参数,例如:
在登录帖子中,在手机中发送data+req.body.device==“mobile”
,在另一端,在网络中发送data+req.body.device==“web”
,
这样,您只需验证(在服务器代码ofc中)发送HTTP请求的设备类型,例如:
app.post("/login",function(req,res){
if(req.body.device == 'web'){
res.render('views1');
}else if(req.body.device == 'mobile'){
res.render('views2');
}
});
您可以对每个GET/POST HTTP请求发送GET/POST
参数,例如:
在登录帖子中,在手机中发送data+req.body.device==“mobile”
,在另一端,在网络中发送data+req.body.device==“web”
,
这样,您只需验证(在服务器代码ofc中)发送HTTP请求的设备类型,例如:
app.post("/login",function(req,res){
if(req.body.device == 'web'){
res.render('views1');
}else if(req.body.device == 'mobile'){
res.render('views2');
}
});
如何以及在何处检测到客户端是台式机还是移动机?实际上,这两个版本的主页是相同的,即登录页。但在使用移动版应用程序登录后,它会重定向到view-1。在使用桌面版本登录后,它应该重定向到view-2。它都是使用角度路由在各自的应用逻辑中配置的。因此,如果我单独运行这两个版本,而不改变服务器代码,那么这两个版本都运行得非常好。因为我明确地告诉服务器关于使用express.static中间件的客户机。但现在我想分别使用这两个版本,由同一台服务器提供服务。我不确定如何配置express Server如何以及在何处检测到客户端是台式机还是移动机?实际上,这两个版本的主页是相同的,即登录页。但在使用移动版应用程序登录后,它会重定向到view-1。在使用桌面版本登录后,它应该重定向到view-2。它都是使用角度路由在各自的应用逻辑中配置的。因此,如果我单独运行这两个版本,而不改变服务器代码,那么这两个版本都运行得非常好。因为我明确地告诉服务器关于使用express.static中间件的客户机。但现在我想分别使用这两个版本,由同一台服务器提供服务。我不确定如何配置express server