Javascript mongoose save不是使用架构的函数

Javascript mongoose save不是使用架构的函数,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我得到了StripeToken.save不是一个函数错误,代码如下。那是我的模型,我不知道哪里出了问题,我觉得还可以 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var stripe_token_schema = new Schema({ email: String, token: String, used: {type: Date, default: 0} }); var Str

我得到了StripeToken.save不是一个函数错误,代码如下。那是我的模型,我不知道哪里出了问题,我觉得还可以

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
}

你的模型似乎是正确的

modelschema.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: "fakemail@gmail.com",
                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
的连接时共享


希望我能帮上忙。

你的模型似乎是正确的

modelschema.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: "fakemail@gmail.com",
                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
的连接时共享

希望我能帮上忙。

save()是保留字吗?我试过保存令牌,但现在成功了(save()是一个保留字?我尝试了save_token,它现在起作用了:(