在套接字中获取请求参数
Get request parameters inside socket
我想在mongodb集合中创建一个新文档,每次套接字运行,但这些集合应该属于我所在的页面。
现在我像这样硬编码pageId
io.on('connection', (socket) => {
const pageId = '57cc491c95f2513e5aad2590';
socket.on('new nodes', (positions) => {
Document.create({pageId: pageId}, (err, doc) => {
// ...
});
});
});
但是我想从express
路由内的req.params.pageId
获取id
app.route('/pages/:pageId').get((req, res) => {
// ...
});
套接字。IO连接是独立的,不是快速路由处理程序的一部分。因此,您不能从套接字直接访问req.params.pageId
。IO连接,因为当套接字请求结束和完成时。IO连接到达。所以,当你从套接字连接时,你需要包括一些额外的信息。或者当你发送一个特定的套接字时。指示页id的IO消息。
所以,你有几个选择:
-
当您从页面连接时,您可以在连接URL中包含一个查询参数,该参数表示pageId。然后,在
io.on('connection', ...)
代码中,您可以查看该查询参数以获取pageId。 -
当您发送
new nodes
消息时,您可以包含指定pageId的data参数。
这可以在您的Javascript页面上实现,计算出pageId是什么并将其作为所需的参数插入,或者可以由任何渲染引擎创建初始页面自动完成(因此pageId在页面渲染时直接插入到您的代码中)。
相关文章:
- 原型Ajax请求参数为嵌套json
- 通过Javascript传递请求参数
- 需要解释Javascript regex请求参数解析
- JSP--如何获取请求参数
- 如何自定义数据::confirm弹出窗口以提示输入,该输入将附加到请求参数中
- ExtJS使用控制器中的View Form Data作为Ajax请求参数
- 在express应用程序中,请求参数两次附加到URL
- 如何使用动态请求参数实现像谷歌一样的自动完成
- 验证请求参数的最佳方法是帆.js/节点.js
- 使用请求参数从 JavaScript 调用 servlet
- 如何获取删除请求参数
- 在 SailsJS 中验证请求参数
- 在双引号中附加请求参数
- 数据表后请求参数不起作用
- 在 node.js 中获取动态请求参数
- 有必要限制node.js中GET请求参数字符串的大小吗
- 路径参数或请求参数-从客户端角度
- 将会话ID/密钥作为请求参数传递时存在安全风险
- 访问Sails中的JSON请求参数
- 在通过RequestDispatcher调用的html页面上获取请求参数