简体   繁体   English

使用Nginx和ExpressJS进行404路由

[英]404 on routing with nginx and expressjs

i have created on EC2 an instance of ubuntu server and trying to get the express generator simple skeleton get working. 我已经在EC2上创建了一个ubuntu服务器实例,并试图使Express Generator简单骨架开始工作。
when i go to root http://MY_SERVER_IP_HERE/ the index page of the app is shown. 当我转到根目录http:// MY_SERVER_IP_HERE /时 ,将显示该应用程序的索引页。
if i go to http://MY_SERVER_IP_HERE/users im getting 404 even though the express app is set up to handle this route. 如果我转到http:// MY_SERVER_IP_HERE / users ,即使设置了快速应用程序来处理此路由,我仍会收到404错误。

var routes = require('./routes/index');
var users = require('./routes/users');

app.use('/', routes);
app.use('/users', users);

/routes/index.js /routes/index.js

var express = require('express');
var router = express.Router();

/* GET home page. */
/**** WORKS FINE ****/
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

/routes/users.js /routes/users.js

var express = require('express');
var router = express.Router();

/* GET users listing. */
/*** GETTING 404 ****/
router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});

module.exports = router;

my nginx routing settings: 我的Nginx路由设置:

location ~ ^/(stylesheets/|css/|js/){
    root /var/www/html/test/myapp/public;
}

location / {
    proxy_pass http://MY_SERVER_IP:3000;
}

thank you very much! 非常感谢你!

Change the code like this. 像这样更改代码。

server.js server.js

var express= require('express');
var app = express();  
require('./routes/index')(app, express);
require('./routes/users')(app, express);
//.....
app.listen(3000);

/routes/index.js /routes/index.js

module.exports  = function(app, express) {
    var router = express.Router();
    router.get('/', function(req, res, next) {
        res.render('index', { title: 'Express' });
    });
    app.use('/', router);
};

/routes/users.js /routes/users.js

module.exports  = function(app, express) {
    var router = express.Router();
    router.get('/', function(req, res, next) {
        res.send('respond with a resource');
    });
    app.use('/users', router);
};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM