小编gho*_*vat的帖子

支持 ES5 模块中的 ES6 导入

对于我的一年级学生,我提供了一个使用 Revealing Module Pattern 编写的基于 ES5 的简单库。这是“主”模块/命名空间的一个片段,它将容纳其他扩展:

window.Library = (function ($) {
    if (!$) {
        alert("The Library is dependent on jQuery, which is not loaded!");
    }

    return {};
})(window.jQuery);
Run Code Online (Sandbox Code Playgroud)

这适用于几乎 99.9% 的 Web 开发新手,并且没有将 ES6 等花哨的东西与 Webpack 或 Babel 结合使用。

0.1% 现在要求我提供基于 ES6 的版本,可以正确导入。我很乐意提供这个,但我有点坚持如何最好地解决这个问题。

我显然想保持 ES5 的方式,所以我的学生可以使用脚本标签包含文件并Library.SomeExtension.aFunction();在任何他们喜欢的地方输入。最重要的是,一些扩展依赖于 jQuery,它以与上面的代码片段类似的方式注入。

我现在正在寻找一些可维护的方法来获得两全其美的方法,使用一个代码库,将 jQuery 作为依赖项。我想给 99.9% a window.Library,而我想给 0.1% 一种使用import Library from 'library'.

我可以用一个 JS 文件来完成这两个任务吗?或者我需要一个特殊的 ES6 版本(不是问题)?最重要的是:我将如何以可以支持两种情况的方式重新调整我的代码(都类似于上面的代码段)?

任何和所有指针将不胜感激!

编辑:正如一个方面说明,我已经有一个gulpfile.js在其中贯穿这个库的地方Babelminifiers和其他的东西。所以必须扩展它来解决上述问题不是问题!

javascript ecmascript-6 es6-modules

8
推荐指数
1
解决办法
815
查看次数

Python3.7 asyncio 启动 webserver (FastAPI) 和 aio_pika 消费者

在我的项目中,我尝试启动一个 REST API(使用 FastAPI 构建并使用 Hypercorn 运行),另外我还想在启动时启动一个 RabbitMQ Consumer(使用 aio_pika):

Aio Pika 提供了一个强大的连接,可以在失败时自动重新连接。如果我使用hypercorn app:app消费者运行下面的代码并且其余接口正确启动,但是从 aio_pika 重新连接不再起作用。如何在两个不同的进程(或线程?)中归档生产稳定的 RabbitMQ Consumer 和 RestAPI。我的 python 版本是 3.7,请注意我实际上是一个 Java 和 Go 开发人员,以防我的方法不是 Python 方式:-)

@app.on_event("startup")
def startup():
   loop = asyncio.new_event_loop()
    asyncio.ensure_future(main(loop))


@app.get("/")
def read_root():
   return {"Hello": "World"}


async def main(loop):
connection = await aio_pika.connect_robust(
    "amqp://guest:guest@127.0.0.1/", loop=loop
)

async with connection:
    queue_name = "test_queue"

    # Creating channel
    channel = await connection.channel()  # type: aio_pika.Channel

    # Declaring queue
    queue = await channel.declare_queue(
        queue_name,
        auto_delete=True
    ) …
Run Code Online (Sandbox Code Playgroud)

python-3.x python-asyncio fastapi hypercorn

7
推荐指数
1
解决办法
2242
查看次数

使用Java在Java中创建的JWT令牌

我有一个有趣的问题.我将python与Flask一起用于身份验证服务,该服务使用flask_jwt_extended生成JWT令牌.这就是我如何使用Flask JWT Extended在Python中生成令牌.

identity = {
        "firstname": user.firstname,
        "lastname": user.lastname,
        "email": user.email,
        "uuid": user.user_uuid,
        'user_id': user.id
    }
access_token = create_access_token(identity=identity, fresh=True)
Run Code Online (Sandbox Code Playgroud)

在配置中,我指定了JWT密钥和JWT算法:

JWT_SECRET_KEY = "this-really-needs-to-be-changed"
JWT_ALGORITHM = "HS256"
Run Code Online (Sandbox Code Playgroud)

在Java中,我使用jjwt库(io.jsonwebtoken,jjwt,0.9.0)来解码我制作的JWT:

Claims userJWT = Jwts.parser()
                    .setSigningKey("this-really-needs-to-be-changed")
                    .parseClaimsJwt(token)
                    .getBody();
Run Code Online (Sandbox Code Playgroud)

但是在Java中我得到一个例外,如果我运行它,我真的不明白问题是什么,因为算法是相同的和令牌.

从几小时开始,我现在尝试弄清问题是什么,因为它对我没有意义,

例外:

  : JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted.

io.jsonwebtoken.SignatureException: JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted.
        at io.jsonwebtoken.impl.DefaultJwtParser.parse(DefaultJwtParser.java:354) ~[jjwt-0.9.0.jar!/:0.9.0] …
Run Code Online (Sandbox Code Playgroud)

python java jwt flask-jwt-extended

5
推荐指数
1
解决办法
857
查看次数

Docker容器无法连接互联网

我在 AWS EC2 实例上运行 Docker 容器,Docker 容器通过 Docker 网络连接,该网络通过 etcd 集群进行复制。但所有容器都无法与外部连接。例如,如果我 ping 或 curl 主机,则 100% 的包丢失。etcd 网络通过 AWS 私有 IP 进行通信。

这是我的码头工人信息:

root@ip-10-0-127-34:/home# docker info
Containers: 3
 Running: 3
 Paused: 0
 Stopped: 0
Images: 9
Server Version: 17.05.0-ce
Storage Driver: devicemapper
 Pool Name: docker-202:1-2050903-pool
 Pool Blocksize: 65.54kB
 Base Device Size: 10.74GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 4.554GB
 Data Space Total: 107.4GB
 Data Space Available: 102.8GB
 Metadata Space Used:sattler 6.922MB
 Metadata Space Total: …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services docker etcd docker-network

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

Redis Sentinel身份验证

我有3台运行Redis和Sentinel的服务器。所有实例都在配置中

requirepass XXX
masterauth XXX
Run Code Online (Sandbox Code Playgroud)

我可以使用redis-cli连接到redis服务器,但是如果尝试连接到哨兵,则无法进行身份验证。

root@ip-:/usr/lib/nagios/plugins# redis-cli -p 26379
127.0.0.1:26379> AUTH xxx
(error) ERR unknown command 'AUTH'
127.0.0.1:26379> 
Run Code Online (Sandbox Code Playgroud)

如果我使用相同的命令,但带有redis端口,则可以使用。

最好的谢谢

redis sentinel redis-sentinel

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

我无法在 docker 上连接到我的 Hugo 网站

最近我创建了一个泊坞窗,并在那里创建了一个hugo站点,当我启动页面但在导航器中不收费时出现问题。我对此很陌生,所以我迷路了。

这是我启动网站时显示的内容:

WARN 2019/12/09 16:15:11 found no layout file for "HTML" for "taxonomyTerm": You should create a template file which matches Hugo Layouts Lookup Rules for this combination.

                   | EN  
+------------------+----+
  Pages            |  4  
  Paginator pages  |  0  
  Non-page files   |  0  
  Static files     | 17  
  Processed images |  0  
  Aliases          |  0  
  Sitemaps         |  1  
  Cleaned          |  0  

Total in 6 ms
Watching for changes in /cvcontainer/cv-online/{archetypes,content,data,layouts,static,themes}
Watching for config changes in /cvcontainer/cv-online/config.toml
Environment: "development"
Serving pages …
Run Code Online (Sandbox Code Playgroud)

docker hugo

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

如何制作一个发散的颜色条,两个值之间有空白 Matplotlib?

我正在尝试使用彩色图地震创建颜色条。我希望颜色图在-6 到 6 的范围内,但在 -1.5 到 -.5 范围内为白色,然后从那里开始发散,大于-.5的数字为红色,小于-1.5的数字为蓝色。

有什么简单的方法可以做到这一点吗?

我正在尝试这个:

lower = plt.cm.seismic(np.linspace(-6, -1.5, 10))
upper = plt.cm.seismic(np.linspace(-.5, 6, 10))
colors = np.vstack((lower, upper))
tmap = matplotlib.colors.LinearSegmentedColormap.from_list('map_white', colors)
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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