我用Express和React构建了一个应用程序,该应用程序具有GET和POST路由,这些路由在本地可以完美运行。我已经通过Heroku进行了部署,但现在一切正常!我刚收到404错误。尽管我并未使用Create-React-App进行设置,但我试图创建一个无法正常工作的static.json文件。
这是我的index.js:
const mongoose = require('mongoose')
const bodyParser = require('body-parser')
const app = express()
const router = require('./config/router')
const { port,dbURI } = require('./config/environment')
const errorHandler = require('./lib/errorHandler')
const logger = require('./lib/logger')
app.use(express.static(`${__dirname}/public`))
app.use(express.static(`${__dirname}/dist`))
mongoose.connect(dbURI,{ useNewURLParser: true,useCreateIndex: true})
app.use(bodyParser.json())
app.use(logger)
app.use('/api',router)
app.use(errorHandler)
app.listen(port,() => console.log(`Up and running on port ${port}`))
module.exports = app
router.js
const vacancies = require('../controllers/vacancies')
router.route('/vacancies')
.get(vacancies.index)
.post(vacancies.create)
router.route('/vacancies/:id')
.get(vacancies.show)
module.exports = router
控制器:
//tested in insomnia - works
function indexRoute(req,res,next) {
Vacancy
.find(req.query)
.then(vacancies => res.status(200).json(vacancies))
.catch(next)
}
//tested in insomnia - works
function showRoute(req,next) {
Vacancy
.findById(req.params.id)
.then(vacancy => res.status(200).json(vacancy))
.catch(next)
}
//tested in insomnia - works
function createRoute(req,res) {
Vacancy
.create(req.body)
.then(vacancy => res.status(201).json(vacancy))
.catch(err => res.status(422).json(err))
}
module.exports = {
index: indexRoute,show: showRoute,create: createRoute
}
最后是环境文件:
const port = process.env.PORT || 4000
const dbURI = process.env.MONGODB_URI || `mongodb://localhost/dxw-job-board-${process.env.NODE_ENV || 'dev'}`
module.exports = { port,dbURI }
这是一项针对我真的想为它无法正常工作而感到焦虑的工作的代码测试-任何帮助将不胜感激!