3

我正在尝试设置新的SanicWeb 框架(承诺非常快)motorengine以实现 100% 异步。

到目前为止我的设置:

app = Sanic(__name__)

@app.listener('after_server_start')
async def setup_dbconn(app, loop):
    connect("database_name", username="user", password="pass", host="192.168.1.200", port=27017, io_loop=asyncio.get_event_loop())

不幸的是我得到:

motorengine.connection.ConnectionError: Cannot connect to database default :
Unknown option username

为什么会崩溃?

4

1 回答 1

1

您遇到的具体问题Sanicmotorengine.

使用数据库 URI 进行连接:

motorengine.connect(
    db=name, 
    alias=alias, 
    host="mongodb://username:password@localhost:port", 
    io_loop=tornado.ioloop.IOLoop.instance()
)     

解决方案来自这张票:https ://github.com/heynemann/motorengine/issues/82 。


PS:对于 Sanic >= 0.4.0,您应该考虑使用sanic-motor扩展!

于 2018-01-18T15:14:03.107 回答