对于我目前正在进行的项目,我决定不使用node的http服务器,并且几天来我一直在试图弄清楚如何将socket.io-passport应用程序与nginx结合起来。我理解即时通讯强制使用express(用于会话处理)。我在网上找到的所有示例都非常奇怪,总是使用节点服务器来提供静态内容而没有人用Nginx做过实际的工作示例。让我描述一下我的问题。
考虑以下代码
app.get('/home', function(reg, res){
//check user session value, is logged in
if(req.user)
res.render('dash',{
username: req.user['member_id']//req.user array contains serializeUser data
});
else
res.render('index');
});
app.get('/logout', function(req, res){
req.logout();
res.redirect('/home');
});
//login form submit as post
app.post('/login',
passport.authenticate('local', {
successRedirect: '/dashboard',
failureRedirect: '/home'
})
);
app.get('/signup',routes.signup);
app.get('*', routes.index);
如何在我的js文件中指示JavaScript,以提供没有路由的静态文件?
答案 0 :(得分:0)
在expressjs中,您可以使用静态中间件来提供特定文件夹中的静态内容。您无需为此指定路线。
app.use(express.static(__dirname + '/public'));
您可以访问公共文件夹localhost:portnumber / staticfile.js
中的静态文件您可能想要为静态文件添加前缀,您可以使用:
app.use('/static', express.static(__dirname + '/public'));
您可以使用localhost访问:portnumber / static / staticfile.js
如果你想让nginx提供静态文件,你可以在nginx中创建新的vhost来通过nginx提供静态文件。 通常,nginx用作反向代理,以将端口80上的所有请求代理到node.js app。