我的项目在生产中出现了问题,我不知道我是否有错误的配置或类似的东西,我想知道你是否能看到一些东西,我会把我的代码片段留给你。
在本地它工作得很好,似乎在生产中我使用netlify,它没有很好地采用的路线
这是我的路线文件夹中的文件
'use strict'
var express = require('express');
var ArticleController = require('../controllers/article');
var router = express.Router();
var multipart = require('connect-multiparty');
var md_upload = multipart({uploadDir: './upload/articles'});
router.get('/', ArticleController.probar);
router.post('/save', ArticleController.save);
router.get('/articles/:last?', ArticleController.getArticles);
router.get('/article/:id', ArticleController.getArticle);
router.put('/article/:id', ArticleController.update);
router.delete('/article/:id', ArticleController.delete);
router.post('/upload-image/:id?', md_upload , ArticleController.upload);
router.get('/get-image/:image', ArticleController.getImage);
router.get('/search/:search', ArticleController.search);
module.exports = router;
因此,我转到导出这些路径的位置,即app.js文件
'use strict'
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var article_routes = require('./routes/article');
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());
// CORS
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Authorization, X-API-KEY, Origin, X-Requested-With,
Content-Type, Accept, Access-Control-Allow-Request-Method');
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE');
res.header('Allow', 'GET, POST, OPTIONS, PUT, DELETE');
next();
});
app.use('/api', article_routes);
module.exports = app;
然后我转到我的index.js,也就是我导入app.js 的地方
'use strict'
var mongoose = require('mongoose');
var port = process.env.PORT || 3900;
var app = require('./app');
mongoose.set('useFindAndModify', false);
mongoose.Promise = global.Promise;
mongoose.connect('mongodb+srv://emocrat3:emocrat3@reactproyecto.plzbz.mongodb.net/reactProyecto?
retryWrites=true&w=majority', { useNewUrlParser: true })
.then(() => {
console.log('La conexion a mongodb se realizo correctamente!');
//Crear servidor y ponerme a escuchar peticiones HTTP
app.listen(port, () => {
console.log('Servidor corriendo en http://localhost:' + port);
});
});
如果你想深入了解,或者我需要添加Github存储库,我会添加我的存储库
和我的网站更好地观察错误应用程序网页错误就在这里错误在这里
我唯一的打击途径是
router.get ('/ articles /: last?', ArticleController.getArticles);
我查询的前端是这个
getArticles = () => {
axios.get("http://arthuro-gomez-react.netlify.app/api/articles")
.then(res => {
this.setState({
articles: res.data.articles,
status: 'success'
});
});
}
我希望我已经很好地阐述了我的问题,希望你能抽出时间来看看我的问题。谢谢
router.get ('/ articles /: last?', ArticleController.getArticles);
尝试删除空格
因为在你的路由器中你有
router.get('/articles/:last?', ArticleController.getArticles);
你正在做的是
router.get ('/ articles /: last?', ArticleController.getArticles);
试着删除,因为我知道你会传递任何参数,是吗?
: last?
我已经知道发生了什么,非常尴尬的事情哈哈,我没有走路线,因为我的后端与netlify不一致,只有我的前端,所以我在heroku中上传了我的后端项目,只连接了我的全局变量,指向指示heroku的链接:(并准备好了,解决了,谢谢大家的时间。
基本上在我的前端创建一个全局变量,它将指向我的api所在的链接,现在它可以工作了:(