简体   繁体   中英

router.get('/') on expressjs not working

i can't access to my express application's home page by '/' route pattern. it's working on /index eg 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'); }); }); 

您在第二行忘记了“ *”

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

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

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

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

Do you forget to make redirection?

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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