【问题标题】:Mocha Test of Mongoose Model yields error with 'then'Mongoose 模型的 Mocha 测试产生“then”错误
【发布时间】:2017-06-10 02:14:32
【问题描述】:

我正在运行 API 的早期测试,错误应该很明显,但我在 45 分钟内一直盯着相同的代码看。

这是错误

Creating User document find or create a twitter user:
TypeError: Cannot read property 'then' of undefined

这是测试。错误在于 .then(user=> {...}

const assert = require('assert');
const User = require('../models/userModel');
const userController = require('../controllers/usersController');

describe('Creating User document', () => {
    it('find or create a twitter user', (done) => {
            userController.findOrCreateHelper({
                username : 'testuser', 
                displayName : 'testUserDisplay', 
                id : 111000100, 
                provider : 'Twitter'
                })
                .then(user => {
                    console.log('*** Error in this .then bracket ***', user)
                    assert(user === 'testuser')
                    assert(user.id === 111000100)
                    done()
                }).catch(error => console.error(error))
    })

这是控制器

const mongoose = require('mongoose');
const User = require('../models/userModel');

exports.findUser = ({id}) => {
    return User.findOne({id})
}

exports.createUser = ({username, displayName, id, provider}) => {
    return User.create( {username, displayName, id, provider })
}

exports.findOrCreateHelper = (provider) => {
    exports.findUser({id})
        .then(user => {
            if ( !user ) {
                exports.createUser(provider)
            }
        })
}

【问题讨论】:

  • 发现问题...详情如下

标签: mongoose mocha.js


【解决方案1】:

exports.findOrCreateHelper 需要“返回 exports.findUser({...}}...”,如下所示:

exports.findOrCreateHelper = (provider) => {
    return exports.findUser({id})
        .then(user => {
            if ( !user ) {
                exports.createUser(provider)
            }
        })
}

【讨论】:

    猜你喜欢
    • 2016-11-19
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2016-12-30
    • 2019-05-11
    相关资源
    最近更新 更多