reactjs - Node js express\ react js cors问题
问题描述
我正在处理 express js 中的 CORS 问题,所以问题是当我使用 CORS 库时,我通常会在邮递员中收到 cors 标头而没有问题,如下图所示邮递员响应标头
但是当我从我的 React js 调用相同的 api 时,我得到一个 cors 错误,并且响应标头中没有 cors 标头。
第二个问题是,当我在我的主应用程序中使用 cors 库时:
我的整个快递服务器很长一段时间都没有返回任何东西。
这是 express js 中的相关代码:
//server.js
const express = require("express");
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
const dbConfig = require('./config/database.config.js');
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect(dbConfig.url, {
useNewUrlParser: true,
useUnifiedTopology: true
}).then(()=>{
console.log("Successfully connected to the database");
}).catch(err => {
console.log('Could not connect to the database. Exiting now ...',err);
process.exit();
})
app.get('/',(req, res) => {
res.json({"message" : "Welcome to EasyNotes application. Take notes quickly. Organize and keep track of all your notes."});
});
require('./app/routes/note.routes.js')(app);
app.listen(3000,() => {
console.log("Server is listening on port 3000");
})
这是我的路由 js 文件
//routing
const cors = require('cors');
module.exports = (app) => {
const notes = require('../controllers/note.controller.js');
app.post('/notes', cors(), notes.create);
app.get('/notes', cors(), notes.findAll);
app.get('/notes/:noteId', cors(), notes.findOne);
app.post('/notes/:noteId', cors(), notes.update);
app.delete('/notes/:noteId', cors(), notes.delete);
}
最奇怪的是,我使用的是相同的 api,但使用了不同的路由,并且它在浏览器中运行良好,就像我使用这条路由时一样:
app.get('/notes', cors(), notes.findAll);
它工作正常。
请帮忙 !!
解决方案
在你server.js
正在使用的文件中,app.use(cors)
但它应该是app.use(cors())
. 这是我目前正在从事的一个项目中的一个示例
require('./db')
const express = require('express')
const cors = require('cors')
const bodyParser = require('body-parser')
const mongoose = require('mongoose')
const postRouter = require('./routes/post')
const app = express()
app.use(cors())
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))
app.use('/api', postRouter)
/*
mongoose.connection.on('connected', () => {
mongoose.connection.db.listCollections().toArray(function (err, names) {
console.log(names);
});
})
*/
app.post('/', function(req, res) {
res.sendStatus(200)
})
app.listen(5000, () => console.log("Server started on port 5000"));
推荐阅读
- android - Google Maps Android API:授权失败 - kotlin
- python - 当我向 MySQL 我的 Pandas DataFrame 写入数据时,没有得到第一列
- python - isinstance(...) 的功能;但没有实例?
- php - ACF 高级自定义字段乘法返回 0 而不是正确的数学答案
- c++ - 在 C++ 上使用 atomic_flag
- xml - 无法使用 Ansible 的 blockinfile 模块构造 XML
- python - 如何将列表中元组的第 i 个元素映射到另一个列表中的键以形成字典
- git - VS Code - gitmessage 的语法高亮
- c - 初始化块部分不允许声明
- authentication - 如何验证使用 Google 登录的用户是否仍然有效?