Cucumber + Mongoose给了我Schema还没有注册模特

时间:2016-05-01 03:07:02

标签: javascript mongodb mongoose cucumberjs

错误消息:

UIView

我的world.js文件:

MissingSchemaError: Schema hasn't been registered for model "User".
Use mongoose.model(name, schema)
at Mongoose.model  (/Users/JimBarrows/Desktop/TaskVelocity/cucubmer/node_modules/mongoose/lib/index.js:349:13)
at Object.<anonymous> (/Users/JimBarrows/Desktop/TaskVelocity/cucubmer/features/support/hooks.js:3:21)

据我了解,这应该很好地设置mongoose。然后在hooks.js:

/**stuff**/
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
require('../../../public_ui/models/Users');
var User = mongoose.model('User');
mongoose.connect('mongodb://192.168.99.100:27017/task_velocity');

我已尝试过,在hooks.js文件中:

'use strict';
 var mongoose = require('mongoose');
 var User = mongoose.model('User');

但是当我试图获得该模型时,这给了我同样的错误。

关于我做错的任何想法?

2 个答案:

答案 0 :(得分:2)

Jim Barrows,考虑到错误是:

  

MissingSchemaError:架构尚未注册模型&#34; 用户&#34;。

您的 world.js 包含以下行:

  

需要(&#39; ../../../ public_ui /模型/ 用户 S&#39);

     

var User = mongoose.model(&#39; 用户&#39;);

我认为这只是一个拼写错误,您可以通过执行以下操作轻松解决此问题:

var User = mongoose.model('Users'); // instead of var User = mongoose.model('User');

**顺便说一下,几天前你的帖子(不是答案)中的 dafyk 评论正是这样......

希望这有帮助

答案 1 :(得分:1)

我不确定,但是......

检查此link

您必须制作架构并设置 mongoose.model('用户',架构);

你能告诉我“Users.js”的来源吗? 如果你想制作模块, 喜欢这个来源

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

    var UserSchema = new Schema({
        username: String,
        passwrod: String
        //Have to Custom
    });

    module.exports = mongoose.model('User', UserSchema);

并使用此

var Users = require('../../../public_ui/models/Users');