Meteor - insert failed: Method not found

后端 未结 2 1810
攒了一身酷
攒了一身酷 2021-01-14 03:17

I have a problem with my Meteor\'s JS file. I get this error \"insert failed: Method not found\" when I try to insert any data to the database and reflect on chart. I\'ve tr

相关标签:
2条回答
  • 2021-01-14 03:58

    While following the Getting Started tutorial on the official meteor.js website I've had the same problem with autopublish turned on.

    Turned out the issue was I created my Tasks collection inside the imports/ folder. Thus it was not implicitly imported on the server.

    I had to explicitly import it on the server to solve the issue.

    server/main.js

    import { Meteor } from 'meteor/meteor';
    import '../imports/api/tasks.js';
    
    Meteor.startup(() => {  
      // code to run on server at startup
    });
    

    As you can see the import is not used by my code but is required anyways.

    0 讨论(0)
  • 2021-01-14 04:00

    Thanks for the help... I actually got it worked by publishing the collection and giving it some permissions:

    This code is placed in "myapp/shared/collections.js". (Placed them separately to handle all the other collections which I would add for other graphs)

    lineVar = new Meteor.Collection("linenvd3");
    lineVar.allow({
             insert: function () {
             return true;
             },
             update: function () {
             return true;
             },
             remove: function () {
             return true;
             }
             });
    

    This code is placed in "myapp/server/publish.js"

    Meteor.publish('line', function () {
               return lineVar.find();
               });
    

    Then, this is modified Javascript made look more simpler and comprehensive.

    if (Meteor.isClient) {
    Meteor.subscribe('line');
    Template.linenvd3.rendered = function() {
    
        var chart = nv.models.lineChart()
          .margin({left: 80})
          .useInteractiveGuideline(true)
          .transitionDuration(350)
          .showLegend(true)
          .showYAxis(true)        //Show the y-axis
          .showXAxis(true)        //Show the x-axis
        ;
    
        nv.addGraph(function() {
              chart.xAxis.axisLabel('Person number').tickFormat(d3.format('d'));
              chart.yAxis.axisLabel('Age (years)').tickFormat(d3.format('d'));
              d3.select('#lineChart svg').datum(
                [{ values: lineVar.find().fetch(), key: 'Age' }]
              ).call(chart);
              nv.utils.windowResize(function() { chart.update() });
              return chart;
        });
    
        Deps.autorun(function () {
              d3.select('#lineChart svg').datum(
                [{ values: lineVar.find().fetch(), key: 'Age' }]).call(chart);
              chart.update();
        });
    };
    }
    
    0 讨论(0)
提交回复
热议问题