【问题标题】:Save function mongoose with ES6使用 ES6 保存函数 mongoose
【发布时间】:2017-07-31 16:49:52
【问题描述】:

我想知道在没有外部库的情况下是否可以在 ES6 中执行此操作。我指的是.save 函数,因为在尝试执行此操作时出现错误,并显示“无法读取未定义的属性'saveInfo'”。

schema.statics.saveInfo = function(info,callback){

      var toSet = new Info(info);

      // I want this save on es6
      toSet.save(function(err){
         if (err){
           return handleError(err);
         }else{
          callback("Success!...");
        }
      }); }

module.exports = Info = mongoose.model('userInfo',schema);

而 es6 中的 this 是这样的

schema.statics.saveInfo = (info, callback) => {

      const toSet = new Info(info);
      toSet.save(err => {
         if (err){
           return handleError(err);
         }else{
          callback("Success!...");
        }
      });

export default Info = mongoose.model('userInfo',schema); 但我收到一条错误消息,提示信息未定义。

【问题讨论】:

  • ECMAScript 2015 是向后兼容的,所以在我看来,您尝试使用一项新功能,但没有成功。请更具体地说明什么不起作用。此外,最后一行不是有效的语法。
  • 您的意思是传递您的schema,而不是Schema?还有,什么是toSet,为什么没有使用Save
  • 你让它在 ES5 中工作了吗?请向我们展示该代码。否则这与 ES6 无关——你的代码甚至没有使用任何新的 ES6 特性。

标签: javascript mongoose ecmascript-6


【解决方案1】:

问题是要使用导出默认值,我必须先创建变量才能导出它 所以我从这里更改了我的代码
export default Info = mongoose.model('userInfo',schema);

到这里:

const Info = mongoose.model('userInfo',UserSchema);
export default Info;

【讨论】:

    猜你喜欢
    • 2020-08-10
    • 2019-02-20
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 2014-04-07
    相关资源
    最近更新 更多