小编neu*_*ero的帖子

将env选项与非env选项合并时的Babel插件顺序

Babel 插件文档说:

  • 插件在预设之前运行.
  • 插件排序是第一个.
  • 预设顺序相反(从最后到第一个).

Babel .babelrc文档说:

特定于某个环境的选项将合并到并覆盖非env特定选项.

文档并没有确切地说它们是如何合并的.

我正在使用样板React项目react-slingshot,我想利用类属性转换.该项目使用babel-preset-stage-1,包括babel-plugin-transform-class-properties.类属性转换应该让我编写如下代码:

class Example extends Component {
  static propTypes = {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

.babelrc该项目是:

{
  "presets": [
    "react",
    "stage-1"
  ],
  "env": {
    "development": {
      "presets": [
        "latest",
        "react-hmre"
      ]
    },
    "production": {
      "presets": [
        ["latest", {
          "es2015": {
            "modules": false
          }
        }]
      ],
      "plugins": [
        "transform-react-constant-elements",
        "transform-react-remove-prop-types"
      ]
    },
    "test": {
      "presets": [
        "latest"
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但当按原样使用时,我得到:

Module build …
Run Code Online (Sandbox Code Playgroud)

javascript babeljs

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

mongoose.connection.collections.collection.drop()每隔两次就会引发错误

我正在使用Jest为Node / Express / Mongo项目设置测试。我试图编写一个函数来清除集合,所以每个测试都以一个干净的状态开始:

const clearCollection = (collectionName, done) => {
  const collection = mongoose.connection.collections[collectionName]
  collection.drop(err => {
    if (err) throw new Error(err)
    else done()
  )
}

beforeEach(done => {
  clearCollection('users', done)
})
Run Code Online (Sandbox Code Playgroud)

再一次尝试,并保证:

const clearCollection = collectionName => {
  const collection = mongoose.connection.collections[collectionName]
  return collection.drop()
}

beforeEach(async () => {
  await clearCollection('users')
})
Run Code Online (Sandbox Code Playgroud)

问题在于它们在工作和引发错误之间都交替出现。每次保存文件时,它要么完美运行,要么抛出错误,每次都交替出现。错误始终是以下之一:

MongoError: cannot perform operation: a background operation is currently running for collection auth_test.users

MongoError: ns not found
Run Code Online (Sandbox Code Playgroud)

通过clearCollection()在a内调用自身catch(),我可以使其在100%的时间内工作(无论如何受堆栈限制),但这感觉很不对劲:

const clearCollection …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js promise async-await

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

标签 统计

async-await ×1

babeljs ×1

javascript ×1

mongodb ×1

mongoose ×1

node.js ×1

promise ×1