2016-11-12 69 views
1

我得到StripeToken.save不是下面的代碼的函數錯誤。這是我的模型,我不知道出了什麼問題,它對我來說看起來不錯。mongoose保存不是使用模式的函數

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

var stripe_token_schema = new Schema({ 
    email: String, 
    token: String, 
    used: {type: Date, default: 0} 
}); 

var StripeToken = module.exports = mongoose.model('stripe_token', stripe_token_schema); 

module.exports.save_token = function(email,token){ 
    StripeToken.save({email:email,token:token}).exec(callback); //error here 
} 

回答

0

你的模型似乎是正確的

模型schema.js:

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

var stripe_token_schema = new Schema({ 
    email: String, 
    token: String, 
    used: {type: Date, default: 0} 
}); 

module.exports = mongoose.model('stripe_token', stripe_token_schema); 

但你應該改變你的.save()功能

postNewMail.js

require('mongoose'); 
var MailModel= require('./model-schema.js'); 

. . . 

var newMail = { 
       email: "[email protected]", 
       token: "yourGeneratedToken" 
}; 

saveNewUser(newMail).then(function(response){ 
    if(response.error){ 
    console.log(response.error); 
    } else { 
    console.log('Successfully saved ', response); 
    } 
}); 

function saveNewUser(email){ 
    return new Promise(function (resolve, reject) { 
    // Creates a new Email based on the Mongoose schema 
    var newEmail= new MailModel(email); 
    newEmail.save(function(error) { 
     console.log('err', error); 
     if (error){ 
      return reject({error : 'Error while saving email'}); 
     } 
     // If no errors are found, it responds with a JSON of the new email 
     return resolve(email); 
    }); 
    }); 
} 

如果您有其他麻煩,請分享您的server.js或每當您將連接初始化爲MongoDB

希望我一直有幫助。

+0

save()是保留字嗎?我嘗試了save_token現在可以工作。 :( –

+1

是的,它確實是保留的,那麼它工作嗎? – AndreaM16