首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进口CouchDB Nano6.4打字本

进口CouchDB Nano6.4打字本
EN

Stack Overflow用户
提问于 2018-04-18 14:50:07
回答 3查看 556关注 0票数 0

我想使用CouchDB作为数据库后端,在一个带有类型记录的NodeJS应用中。CouchDb-Nano用于此,因为它提供了所需的类型。所以我安装了两个软件包:

代码语言:javascript
复制
  "devDependencies": {
    "@types/nano": "^6.4.5"
  },
  "dependencies": {
    "nano": "^6.4.3"
  }

我为正确的TS导入语法找到了这个问题。这对我不管用。通过四处游玩,我发现了以下编译:

代码语言:javascript
复制
import Nano from "nano";
let nano = Nano("http://localhost:5984");

但我的智力在VS代码似乎完全不同。例如,文档说,nano有一个名为db的属性,几种用于选择数据库的方法如下:

var alice = nano.db.use('alice');

这段代码给了我一个错误,即不存在名为db的属性。Intellisense只将auth, config, session显示为属性:

VS代码智能感知屏幕截图

根据注释头,这种类型是针对couchdb(没有其他项目也称为nano )和版本6.4 (这里使用的版本)。

那我做错什么了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-18 15:11:07

看起来,您应该能够将Nano函数转换到ServerScope接口,然后intellisense在与您的nano对象交互时就可以工作了。

代码语言:javascript
复制
import Nano, { ServerScope } from "nano";

const nano = Nano("http://localhost:5984") as ServerScope;
const alice = nano.db.use("alice");
票数 1
EN

Stack Overflow用户

发布于 2018-04-18 15:12:37

发现此问题是由类型定义中的一个不明确的返回值引起的:

代码语言:javascript
复制
declare function nano(
  config: nano.Configuration | string
): nano.ServerScope | nano.DocumentScope<any>;

nano函数可以以nano.ServerScopenano.DocumentScope<any>作为返回值。通过做一些反向工程,我了解到ServerScope是适合我的类。它提供了像db这样的属性,这些属性都存在于文档中。

因此,我们需要在这里显式地转换:

代码语言:javascript
复制
let nanoInstance = <Nano.ServerScope>Nano("http://localhost:5984");

现在,文档中的所有示例代码都能很好地工作如下:

代码语言:javascript
复制
nanoInstance.db.create("test123");

有什么关系呢?

我在nosql数据库中太新了,无法准确解释两者之间的区别。但是我假设,通过提供某种url参数,我们可以直接连接到单个文档,而不是整个数据库。当我知道更多的时候,我会尝试编辑这篇文章。就目前而言,这与我无关。

票数 1
EN

Stack Overflow用户

发布于 2018-08-24 09:46:30

我目前使用的是带有类型记录的nano,intellisense似乎运行得很好。我让它这样设置的。

代码语言:javascript
复制
import Nano from 'nano';

const instance: Nano.ServerScope = Nano('http://localhost:5984/');
const db: Nano.DocumentScope<{}> = instance.db.use('alice');

对于依赖项,我使用:

代码语言:javascript
复制
"dependencies": {
  "nano": "^7.0.0"
},
"devDependencies": {
  "@types/nano": "^6.4.6"
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49902818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档