gpt4 book ai didi

javascript - 未设置 header node.js api推送通知

转载 作者:行者123 更新时间:2023-12-01 01:41:11 25 4
gpt4 key购买 nike

您好,我正在尝试为我的网络应用程序设置推送通知。

我正在按我应该的方式获得订阅。

它正确地将其保存到我的数据库中。

如果数据库中只有一个用户,它会发送我的通知

我想发送给多个用户:)

我正在使用:

  • Vue.js(框架)

  • Axios(帖子)

  • node.js(API)

  • mongoDB(数据库)

这是我在 API 上的帖子。

await axios({
method: 'post',
url: 'API',
data: {
subscription: JSON.stringify(subscription),
storeId: storeId
},
headers: {
'Content-Type': 'application/json'
}
})

它注册了我的帖子,但随后我收到了抛出错误。“发送后无法设置 header 。”

我在我的应用程序中使用 CORS,如下所示:

const cors = require('cors')

const app = express();
app.use(bodyParser.json());
app.use(cors())
app.use(morgan('combined'))

我处理来 self 的网站的帖子的方式是找到我的订阅,然后映射并说 foreach 订阅

网络推送

//subscribe routes
app.post('/pushNotification', (req, res) => {
var storeId = req.body.storeId
res.setHeader('Content-Type', 'application/json');
console.log(storeId)
if (req.body.storeId != null) {
console.log('Test1')
//get pushSubscription object

//create payload
const payload = JSON.stringify({ title: 'push test' })
Push.find({
"storeId": storeId
},
'subscription', function(error, response) {
console.log('Test2')
console.log(response)
response.map(item => {
res.status(201).json({});
console.log('Test3')
var subscription = item.subscription
console.log(subscription)
webpush.sendNotification(subscription, payload).catch(err => console.error(err));
})
})
} else {
res.send("failed")
}
})

正如我可以在某处阅读的那样,我是否没有设置标题或正确的内容。我在教程之类的东西中使用过cors。

所以它就像是因为迭代错误而崩溃了。但我不明白如何。

错误消息:

error message

提前致谢

最佳答案

您收到此错误是因为 res.status(201).json({}) 已设置 header 并将响应发送回客户端,但 webpush.sendNotification 也尝试设置 header 。您应该仅使用 webpush.sendNotification(订阅,有效负载).catch(err => console.error(err));

关于javascript - 未设置 header node.js api推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52405768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com