如何解决将标头添加到响应对象
我正在遵循Vercel的指南。他们描述了There,我必须configuring a few headers in the response object
才能启用CORS。
我的问题是,我不了解他们提供的代码。他们提供使用CORS的代码是什么,以及如何使用它将标头附加到我的响应并接收对象?
最诚挚的问候
Vercel的标题
const allowCors = fn => async (req,res) => {
res.setHeader('Access-Control-Allow-Credentials',true)
res.setHeader('Access-Control-Allow-Origin','*')
// another common pattern
// res.setHeader('Access-Control-Allow-Origin',req.headers.origin);
res.setHeader('Access-Control-Allow-Methods','GET,OPTIONS,PATCH,DELETE,POST,PUT')
res.setHeader(
'Access-Control-Allow-Headers','X-CSRF-Token,X-Requested-With,Accept,Accept-Version,Content-Length,Content-MD5,Content-Type,Date,X-Api-Version'
)
if (req.method === 'OPTIONS') {
res.status(200).end()
return
}
return await fn(req,res)
}
const handler = (req,res) => {
const d = new Date()
res.end(d.toString())
}
服务器代码
const express = require("express");
const cors = require('cors');
const monk = require("monk");
const Filter = require('bad-words');
const rateLimit = require("express-rate-limit");
const app = express();
const db = monk(process.env.MONGODB_URI);
const posts = db.get("post");
const filter = new Filter();
app.use(cors());
app.use(express.json());
app.get("/",(req,res) => {
res.json({
message: "POST"
});
});
app.get("/beitraege",res)=> {
posts
.find()
.then(posts => {
res.json(posts)
})
})
function isValidPost(post){
return post.name && post.name.toString().trim() !== "" &&
post.content && post.content.toString().trim() !=="";
}
app.use(rateLimit({
windowMs: 30 * 1000,// 30 sec
max: 1 // limit each IP to 100 requests per windowMs
}));
app.post("/beitraege",res) => {
if (isValidPost(req.body)){
const post = {
name: filter.clean(req.body.name.toString()),content: filter.clean(req.body.content.toString()),created: new Date()
};
//console.log(post);
posts
.insert(post)
.then(createdPost => {
res.json(createdPost);
})
.catch(err => {
return Promise.reject();
})
}else {
res.status(422);
res.json({
message: "Hey,Titel und Inhalt werden benötigt!"
});
}
});
app.listen(5000,() => {
console.log('Listening on http://localhost:5000');
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。