最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - router.get('') on expressjs not working - Stack Overflow

programmeradmin0浏览0评论

i can't access to my express application's home page by '/' route pattern. it's working on /index e.g. My express version is 4.6.

I tried app.use('/*', router), but my application is not responding or 503 service temporarily unavailable. It's now working by '/index' pattern and other routes is working correctly. only '/' pattern is not working. :)

Here is my code snippet.

        var http = require('http');

        var express = require('express');
        var app = express();

        var router = express.Router();
        app.use('/', router);

        app.set('view engine', 'ejs');
        app.set('views', './views');
        app.use(express.static('./public'));

        var bodyParser = require("body-parser");
        app.use(bodyParser());

        var fs = require('fs');

        var clientSessions = require("client-sessions");

        var form = require('express-form');
        var field = form.field;

        var sha1 = require('sha1');

        var mysql = require('mysql');
        var connection = mysql.createConnection({
          host: process.env.OPENSHIFT_MYSQL_DB_HOST,
          port: process.env.OPENSHIFT_MYSQL_DB_PORT,
          user: process.env.OPENSHIFT_MYSQL_DB_USERNAME,
          password: process.env.OPENSHIFT_MYSQL_DB_PASSWORD,
          database: process.env.OPENSHIFT_GEAR_NAME
        });

        var multer = require('multer');
        var done = false;

        app.use(clientSessions({
          secret: 'xxxxx'
        }));

        app.use(function(req, res) {
          res.status(400);
          res.render('pages/404');
        });

         // Handle 500
        app.use(function(error, req, res, next) {
          res.status(500);
          res.render('pages/500');
        });

         //--- 
        app.use(multer({
          dest: 'public/uploads/',
          rename: function(fieldname, filename) {
            return filename + Date.now();
          },
          onFileUploadStart: function(file) {
            console.log(file.originalname + ' is starting ...')
          },
          onFileUploadComplete: function(file) {
            console.log(file.fieldname + ' uploaded to  ' + file.path)
            done = true;
          }
        }));

         //// --------------- start app routes --------------//
         // ----- GET -----
        router.get('/', function() {   // THIS PATTERN IS NOT WORKING
          console.log('hello world');  // this line is not working
          connection.query(strQuery, function(err, rows) {
            // res.render('pages/index');
          });

        });

i can't access to my express application's home page by '/' route pattern. it's working on /index e.g. My express version is 4.6.

I tried app.use('/*', router), but my application is not responding or 503 service temporarily unavailable. It's now working by '/index' pattern and other routes is working correctly. only '/' pattern is not working. :)

Here is my code snippet.

        var http = require('http');

        var express = require('express');
        var app = express();

        var router = express.Router();
        app.use('/', router);

        app.set('view engine', 'ejs');
        app.set('views', './views');
        app.use(express.static('./public'));

        var bodyParser = require("body-parser");
        app.use(bodyParser());

        var fs = require('fs');

        var clientSessions = require("client-sessions");

        var form = require('express-form');
        var field = form.field;

        var sha1 = require('sha1');

        var mysql = require('mysql');
        var connection = mysql.createConnection({
          host: process.env.OPENSHIFT_MYSQL_DB_HOST,
          port: process.env.OPENSHIFT_MYSQL_DB_PORT,
          user: process.env.OPENSHIFT_MYSQL_DB_USERNAME,
          password: process.env.OPENSHIFT_MYSQL_DB_PASSWORD,
          database: process.env.OPENSHIFT_GEAR_NAME
        });

        var multer = require('multer');
        var done = false;

        app.use(clientSessions({
          secret: 'xxxxx'
        }));

        app.use(function(req, res) {
          res.status(400);
          res.render('pages/404');
        });

         // Handle 500
        app.use(function(error, req, res, next) {
          res.status(500);
          res.render('pages/500');
        });

         //--- 
        app.use(multer({
          dest: 'public/uploads/',
          rename: function(fieldname, filename) {
            return filename + Date.now();
          },
          onFileUploadStart: function(file) {
            console.log(file.originalname + ' is starting ...')
          },
          onFileUploadComplete: function(file) {
            console.log(file.fieldname + ' uploaded to  ' + file.path)
            done = true;
          }
        }));

         //// --------------- start app routes --------------//
         // ----- GET -----
        router.get('/', function() {   // THIS PATTERN IS NOT WORKING
          console.log('hello world');  // this line is not working
          connection.query(strQuery, function(err, rows) {
            // res.render('pages/index');
          });

        });

Share Improve this question edited Feb 27, 2015 at 14:38 Munkhbat Mygmarsuren asked Feb 27, 2015 at 3:18 Munkhbat MygmarsurenMunkhbat Mygmarsuren 1131 gold badge2 silver badges13 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 4

Because you didn't handle "/", here is updated code

var router = express.Router();
app.use('/*', router);

router.get('/', function(req, res) {
    res.send('wele home');
}
router.get('/index', function(req, res) {
    res.send('wele index');
}

You are forgetting '*' in second line

app.use('/*', router);

Do you forget to make redirection?

router.get("/", function (req, res) {
    res.redirect("/index");
});
发布评论

评论列表(0)

  1. 暂无评论