简体   繁体   中英

Cannot GET error while trying to access URL using module.export (NodeJS)

I'm getting "Cannot GET /speakers" error on my browser when I am trying to access http://localhost:3000/speakers from the following code:

My Server.js File

const express = require('express')
const path = require('path')

const routes = require('./routes')
const app = express()
const port = 3000

app.set('view engine','ejs')
app.set('views', path.join(__dirname,'./views'))

app.use(express.static(path.join(__dirname,'./static')))
app.use('/', routes())

app.listen(port,()=>{
    console.log(`Express server listening on port ${port}!`)
})

My Script.js File This is my server.js file where I've declared various variables

const express = require('express')
const router = express.Router()

module.exports = () =>{
    router.get('/',(request, response) =>{
        return response.send('Speakers List')
    })

    router.get('/:shortname',(request, response) =>{
        return response.send(`Detail page of {request.params.shortname}`)
    })

    return router;
}

My index.js file

const express = require('express')

const speakersRoute = require('./speakers')
const feedbackRoute = require('./feedback')

const router = express.Router()

module.exports = () =>{
    router.get('/',(request, response) =>{
        response.render('pages/index',{ pageTitle: 'Welcome'})
    })

    router.use('./speakers', speakersRoute())
    router.use('./feedback', feedbackRoute())
    return router
}

Can anyone help me on this?

Have you try change './speaker' to '/speaker' ?

// router.use('./speakers', speakersRoute())
router.use('/speakers', speakersRoute())

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