从模型创建对象时。对象未定义

时间:2017-09-08 10:41:49

标签: node.js mongodb coffeescript

对于一个项目我需要记录.csv下载的导出。 我搜索了很多,但仍然找不到答案。

我创建了一个集合:'令牌'在我的mongoDB中

  • 该模型位于/src/models/token.coffee
  • 该应用位于/src/app.coffee
  • 控制器位于/src/controllers/token.coffee

这是我的模特:

mongoose = require('mongoose')
timestamps = require('mongoose-timestamp')
enums = require './enums'
schema = mongoose.Schema

# Schema definition
TokenSchema = new schema
  user:
    type: mongoose.Schema.Types.ObjectId
    ref: 'User'
    required: true
  first_name:
    type: String
    required: true
  last_name:
    type: String
    required: true
  status:
    type: String
    enums: enums.TokenStatuses.__values
    default: enums.TokenStatuses.running

# Plugins
TokenSchema.plugin timestamps, createdAt: 'created_at',  updatedAt: 'changed_at'

try
  mongoose.model 'Token', TokenSchema

我从控制器调用以下函数:

create_tokens_record = (user_id) ->
  User.findOne {_id: user_id}, (err, user) ->
   obj =
   user: user._id
   first_name: user.first_name
   last_name: user.last_name

   token = new models.Token(obj)
   console.log token
   token.save (err) ->
      return err if err

错误是:

events.js:72
        throw er; // Unhandled 'error' event
              ^
TypeError: undefined is not a function
    at c:\Users\Daan\api\src\controllers\user.coffee:239:15
    at Query.<anonymous> (c:\Users\Daan\api\src\node_modules\mongoose\lib\model.js:3435:16)
    at c:\Users\Daan\api\src\node_modules\mongoose\node_modules\kareem\index.js:273:21
    at c:\Users\Daan\api\src\node_modules\mongoose\node_modules\kareem\index.js:127:16
    at process._tickDomainCallback (node.js:492:13)

我不知道为什么我的模型仍未定义。希望有人能帮助我!

1 个答案:

答案 0 :(得分:0)

我找到了答案:

在我的项目中有一个index.coffee,其中导出了所有模型。 我忘了将新创建的模型添加到此文件中。