小编Aks*_*Aks的帖子

Mongodb 收到错误消息“MongoError:活动中的路径冲突”

我在 node.js 项目中为 mongodb 使用 mongoose 库。在我的日志文件中收到 mongodb 错误消息:

{
  message: 'Path collision at activity',
  stack: 'MongoError: Path collision at activity\n' +
    '    at Connection.<anonymous> (/project/node_modules/mongoose/node_modules/mongodb-core/lib/connection/pool.js:443:61)\n' +
    '    at Connection.emit (events.js:315:20)\n' +
    '    at Connection.EventEmitter.emit (domain.js:483:12)\n' +
    '    at processMessage (/project/node_modules/mongoose/node_modules/mongodb-core/lib/connection/connection.js:364:10)\n' +
    '    at Socket.<anonymous> (/project/node_modules/mongoose/node_modules/mongodb-core/lib/connection/connection.js:533:15)\n' +
    '    at Socket.emit (events.js:315:20)\n' +
    '    at Socket.EventEmitter.emit (domain.js:483:12)\n' +
    '    at addChunk (_stream_readable.js:295:12)\n' +
    '    at readableAddChunk (_stream_readable.js:271:9)\n' +
    '    at Socket.Readable.push (_stream_readable.js:212:10)\n' +
    '    at TCP.onStreamRead (internal/stream_base_commons.js:186:23)',
  operationTime: Timestamp { _bsontype: …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb

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

条件匹配时,对象数组返回对象

我有一个数组,其值是ID,电子邮件和密码。

let array = [
 {id: hyu, email: a@a.com, password: 123},
 {id: rft, email: b@b.com, password: 456},
 {id: ght, email: c@c.com, password: 789},
 {id: kui, email: d@d.com, password: 679}
]
Run Code Online (Sandbox Code Playgroud)

现在,我想在条件匹配时返回该对象。为此,我使用javascript some函数创建了一个函数,但是我想返回该对象,并且我们知道该some函数返回布尔值。

我不知道该怎么做。

我的代码是:

const isEmailExists = (email, array) => {
  return array.some(function(el) {
    return el.email === email;
  });
};

if (isEmailExists("c@c.com", array) == true) {
  // I want to work here with returned objects i.e on success case
} else {
  // error case
}
Run Code Online (Sandbox Code Playgroud)

任何帮助都非常感谢

javascript ecmascript-6

7
推荐指数
2
解决办法
1234
查看次数

陷入 eslint 错误即单独地,应该避免循环以支持数组迭代

我有一些迭代的代码,它运行良好。安装 eslint 后,我​​的一个代码通过 eslint 生成错误。

我的代码是:

for (const column of columns) {
    for (const slugname of result[column.name]) {
        const alphabet = slugname.slugname;
        if (total[alphabet]) {
            total[alphabet] += column.value;
        } else {
            total[alphabet] = column.value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

eslint 产生一个错误,就是这个

error iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations no-restricted-syntax

任何帮助或建议都非常感谢。据我说 代码写的很精准而且很小,不知道eslint报错的线索

javascript ecmascript-6 eslint eslint-config-airbnb

7
推荐指数
2
解决办法
6324
查看次数

如何管理自己创建的错误消息而不是使用默认的庆祝@hapi/joi 代码

我有两个文件,一个是 api.js,另一个是 handler.js。对于模式处理,我正在使用庆祝模块 @hapi/joi

在 api.js 上我只写了 API 名称

在 handler.js 上,我编写了 API 功能。

api.js
//JOI Schema Validator Middleware.
router.use(celebrate({
    body: Joi.object().keys({
        post: Joi.string().max(10),
        userid: Joi.string(),
    })
}));

const handler = require('./handler');

router.post('/createpost', handler.createPost);

router.use(errors());

module.exports = router;
Run Code Online (Sandbox Code Playgroud)

通过这个,如果发生错误,那么我得到了这样的响应

{"statusCode":400,"error":"Bad Request","message":"child \"post\" fails because [\"post\" length must be less than or equal to 10 characters long]","validation":{"source":"body","keys":["post"]}}

我只想将此错误转换为我自己的格式错误,即像这样

{error: true, status: 500, message: 'validation error', version: x.x.2}
Run Code Online (Sandbox Code Playgroud)

默认的 joi 错误是通过router.use(errors());这个模块生成的。我如何修改这个?任何帮助或建议都非常感谢。

custom-errors custom-error-handling hapi joi

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

如何增加活动指示器的大小

我是IOS开发的新手。我创建了一个UIWebView.

当应用程序启动时,我实现了加载器。

现在我希望加载器的尺寸更大一些,并带有一些背景图像。

我的代码是这样的:

    private var loadingObservation: NSKeyValueObservation?

    private lazy var loadingIndicator: UIActivityIndicatorView = {
        let spinner = UIActivityIndicatorView()
        spinner.translatesAutoresizingMaskIntoConstraints = false

        spinner.color = .black

        return spinner
    }()

override func viewDidLoad() {
        super.viewDidLoad()

        loadingObservation = webView.observe(\.isLoading, options: [.new, .old]) { [weak self] (_, change) in
            guard let strongSelf = self else { return }

            // this is fine
            let new = change.newValue!
            let old = change.oldValue!

            if new && !old {
                strongSelf.view.addSubview(strongSelf.loadingIndicator)
                strongSelf.loadingIndicator.startAnimating()
                NSLayoutConstraint.activate([strongSelf.loadingIndicator.centerXAnchor.constraint(equalTo: strongSelf.view.centerXAnchor),
                                             strongSelf.loadingIndicator.centerYAnchor.constraint(equalTo: strongSelf.view.centerYAnchor)])
                strongSelf.view.bringSubviewToFront(strongSelf.loadingIndicator) …
Run Code Online (Sandbox Code Playgroud)

xcode loader ios swift

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