小编Poh*_*How的帖子

使用mongodb和nodejs的实时网络应用程序

我一直在考虑如何使用nodejs/socket.io/mongodb创建一个实时Web应用程序.这个想法非常类似于谷歌文档,其中在页面上编辑的对象在所有客户端浏览器上发出并重新呈现.

这样做的最佳方法是什么?从我读过的内容中我可以想到3种方式:

1)使用mongodb oplogs

添加一个'监听器'到mongodb集合,每当对集合进行更改时重新呈现页面的一部分(缺点:慢?)

2)使用本地json

将mongodb数据检索到json文件中,使用fs进行编辑,保存到mongodb并在完成后删除json(缺点:在数据库和实际应用程序之间有额外的层)

3)使用purely socket.io

重新渲染而不存储,仅在完成所有更改后保存(缺点:文件可能无法在所有浏览器中正确呈现)

有没有更好的方法来实现这一目标?(谷歌文档如何工作?)非常感谢任何人都能提供的帮助!

real-time mongodb node.js socket.io

17
推荐指数
1
解决办法
2万
查看次数

在 eslintrc.json 中关闭 eslint 规则

我试图禁止jsx-a11y/anchor-is-valideslintrc.json。根据docs,相关规则块如下所示:

{
    "rules": {
        "jsx-a11y/anchor-is-valid": [ "error", {
            "components": [ "Link" ],
            "specialLink": [ "hrefLeft", "hrefRight" ],
            "aspects": [ "noHref", "invalidHref", "preferButton" ]
          }]
    }
}
Run Code Online (Sandbox Code Playgroud)

在我升级create-react-app到 2.0 版之前,这曾经有效,我的 eslint 规则只是"jsx-a11y/anchor-is-valid": 0.

我已经阅读了eslint 文档,其中说我们可以简单地更改erroroff,尽管我尝试过无济于事。

禁用规则的正确方法是什么,我应该参考哪些文档?

reactjs eslint eslintrc

11
推荐指数
1
解决办法
6645
查看次数

Meteor:显示文档的当前用户列表

我在meteor中有一个文档列表,只有授权用户才能访问.这有点像谷歌文档.是否有一种简单的方法来获取当前正在查看它们的用户列表?

我想在我的mongodb对象中包含一个"currentUsers"字段,并在用户查看或停止查看组件时推送/删除用户.这感觉就像一种奇怪的方式,因为数据是持久的并且可能容易出错,因为它并不完全代表当前正在查看组件的用户

这个stackoverflow问题是我正在寻找的,但答案有点旧,我不知道如何使用sockjs.如果有人可以提供一个很棒的工作示例.

任何帮助是极大的赞赏!

javascript mongodb meteor

6
推荐指数
1
解决办法
190
查看次数

Meteor:使用反应类中的方法

在meteor中,如何在react类中使用方法?

我想用一个按键在一个反应​​类中触发一个方法,但似乎无法用class.method()访问它

在toolbar.js中:

import React, { Component } from 'react';

class Toolbar extends Component {
  addSection(){
    alert("add section");
  };
  render(){
    return (
      <div className="toolbar">
        <button onClick={this.addSection.bind(this)}>add section</button>
      </div>
    );
  }
}

export default Toolbar;
Run Code Online (Sandbox Code Playgroud)

在main.js中:

import React from 'react';
import ReactDOM from 'react-dom';
import Toolbar from './components/toolbar';

const App = () => {
  return (
    <div>
        <Toolbar />
    </div>
  );
};

Meteor.startup(() => {
  ReactDOM.render(<App />, document.querySelector('.container'));
  $(document).on('keyup', function(e) {
    if (e.ctrlKey && e.keyCode == 49) { // ctrl+1
      Toolbar.addSection(); …
Run Code Online (Sandbox Code Playgroud)

javascript meteor reactjs

4
推荐指数
1
解决办法
113
查看次数

Python3:将 input() 与 stdin 一起使用,就像 hackerrank 中一样

我有一个输入文件(“abc.in”),我希望将其每一行读取为input(),就像它在 hackerrank 和其他在线编码平台上的工作方式一样。

我见过通过Pipelinefileinput 和 sys等复制相同功能的解决方案。在 hackerrank 上,我只能使用input()将输入文件的一行存储为变量。我如何在本地执行此操作?我是否将文件存储在同一位置,使用什么命令在终端中运行它?

我以为这很容易,但不知何故,在尝试了一段时间后我似乎无法弄清楚如何做到这一点。如果答案是显而易见的,我深表歉意。

非常感谢提供的任何帮助!

python

2
推荐指数
1
解决办法
2278
查看次数

Golang OOP澄清

我有两个写入的接口go,一个是另一个的子集

type x interface {
    a()
}

type y interface {
    a()
    b()
}
Run Code Online (Sandbox Code Playgroud)

我也有一个结构,有这样的方法

type z struct {
    some string
}

func (s z) a() {
    // do stuff
}

func (s z) b() {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

我对此有几个问题,即:

  1. 我是否正确地说z实现了x和y?
  2. 以这种方式实现多个接口的一个结构的OOP概念是什么?

我试着问几个同事,他们似乎倾向于polymorphism作为答案,尽管他们不太确定.在维基百科条目的多态性说,它"是一个单一的界面,不同类型的实体的规定",但这种感觉就像直接反向给我.我还在其他来源(例如,这个)中发现Go"不是真正的OOP语言".

oop go

2
推荐指数
1
解决办法
194
查看次数

标签 统计

javascript ×2

meteor ×2

mongodb ×2

reactjs ×2

eslint ×1

eslintrc ×1

go ×1

node.js ×1

oop ×1

python ×1

real-time ×1

socket.io ×1