mongoose功能仅适用于第二次呼叫

时间:2013-07-18 01:30:12

标签: javascript node.js mongodb coffeescript mongoose

所以最奇怪的事情正在发生。我有一个coffeescript类,我用它来构建一个mongoose模式。

module.exports = class Profit 

    constructor: (Schema, mongoose) ->

        @DailyProfitSchema = new Schema(

            profit:
                type: Number
                default: 0
            percent_profit:
                type: Number
                default: 0   
            day:
                type: Number
                default: 0
        )

        @Day = mongoose.model('Day', @DailyProfitSchema)

        @local_day = null

这是我的更新功能

update: (funds) ->

    if @local_day?.day is not date.getDate() 
        # new day
        @local_day = new @Day()

        @local_day.save(
            (err, res) ->
                console.log "saving local day"
                if err?
                    console.log err
        )

奇怪的是,当我更新时

Profit = require '../new_profit'

mongoose = require('mongoose')
mongoose.connect('mongodb://localhost/test')


Schema = mongoose.Schema

profit = new Profit(Schema, mongoose)

funds = 
    amount: 100

profit.update(funds)

没有输出任何内容,与调用saving local day时应输出的预期@local_day.save()相反。

好的,所以这很奇怪,但更奇怪的是当我将更新功能更改为此

update: (funds) ->

    if @local_day?.day is not date.getDate() 
        # new day
        @local_day = new @Day()

        console.log @local_day.save() # this is the line I added

        @local_day.save(
            (err, res) ->
                console.log "saving local day"
                if err?
                    console.log err
        )

我得到了更意想不到的结果

undefined
saving local day

可能导致这种情况的原因是什么?

此外,我不确定它是否相关,但我正在运行mongod作为后台流程,以使本地db正常工作。


更新:无论如何,当我停止使用本地数据库时,问题就消失了mongodb://localhost/test

0 个答案:

没有答案