gpt4 book ai didi

node.js - Sails 套接字请求日志未定义

转载 作者:太空宇宙 更新时间:2023-11-03 22:30:17 25 4
gpt4 key购买 nike

并不是真正的问题,但有点困扰我;启动我的应用程序后,所有套接字请求(例如 /api/articles/subscribe)都会将 undefined 记录到控制台,如下所示:

GET /api/articles 200 180.463 ms - 27767
GET /api/articles/subscribe undefined - ms - -

第一个请求是 HTTP,第二个请求是套接字。

这是为什么?我该如何解决这个问题?

编辑我的路线:

'get /api/articles': 'ArticlesController.index',
'/api/articles/subscribe': 'ArticlesController.subscribe',

我使用 GET 路由 (GET/api/articles) 获取 JSON 格式的所有文章。在查看文章时,我通​​过

订阅了特定房间
io.socket.get('/api/articles/subscribe', function(data, jwt) { ...

订阅方法本身

subscribe: function(req, res) {
if(typeof req.user !== 'undefined') {
sails.sockets.join(req.socket, 'articles');

return res.ok();
}
}

订阅效果很好,但我的控制台中总是出现 GET/api/articles/subscribe undefined - ms - -

最佳答案

您是否尝试过以下任一操作?

这是当您使用Get请求时(例如http://www.url.com/?user=randomusername)

subscribe: function(req, res) {
var user = req.param("user");
if(user !== undefined) {
sails.sockets.join(req.socket, 'articles');
return res.ok();
}
return res.badRequest();
}

这是当您使用 Post 请求时(例如,如果您发送 JSON 或类似内容)

subscribe: function(req, res) {
if(req.body !== undefined && req.body.user !== undefined) {
sails.sockets.join(req.socket, 'articles');
return res.ok();
}
return res.badRequest();
}

或者你需要像这样使用它(根据Sails reference)

subscribe: function(req, res) {
if (!req.isSocket) {
return res.badRequest();
}
var room = req.param('user');
sails.sockets.join(req, room, function(err) {
if (err) {
return res.serverError(err);
}
return res.json({
message: 'Subscribed to a room called '+ room +'!'
});
});
}

关于node.js - Sails 套接字请求日志未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38057557/

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