javascript - 主干 .save() 上的 404 错误

标签 javascript node.js mongodb backbone.js

这与我的网址的/:id结尾有关;我想我无法让我的 Mongoose 和 Backbone ID 字段正确匹配。这是完整的控制台错误 POST http://localhost:8080/api/bears/:id 404 (Not Found)

这是我在其中save() 我的模型的 View 。

var HomeView = Backbone.View.extend({
            el:$('#main'),

            render: function(){

                this.template = _.template($('#home_template').html());

                this.$el.html(this.template);

                $('#new-entry').submit(function(ev){

                    var entry = new Entry({task: $('#word').val(), description: $('#definition').val() });

                    dictionary.add(entry);

                    entry.save();

                    console.log(dictionary.toJSON());

                    $('#body').children('input').val('');

                    return false;

                });

            }
        })

这是我的 Mongoose 模式:

var mongoose = require('mongoose');

var Schema = mongoose.Schema,
    ObjectID = Schema.ObjectID;

var EntrySchema = new Schema({
    task: String,
    description: String
});

module.exports = mongoose.model('Entry', EntrySchema);

Mongoose .post() 路线我的定位:

router.route('/bears')
//create a bear
.post(function(req, res){
    var entry = new Entry();

    entry.task = req.body.task;
    entry.description = req.body.description;

    entry.save(function(err){
        if(err)
            res.send(err);

        res.json({message: 'task created'});
    })
});

这是我的模型定义:

var Entry = Backbone.Model.extend({

                urlRoot: '/api/bears/',

                defaults: function(){
                    return{

                        task: '',
                        description: ''
                    }
                },

                parse: function(response){
                    response.id = response._id;
                    return response;
                },

                idAttribute: "_id",
            });

最佳答案

你需要设置 urlRoot在你的模型中:

var Entry = Backbone.Model.extend({

  urlRoot: '/api/bears/',

  defaults: function(){
      return{
          task: '',
          description: ''
      }
  },

  parse: function(response){
      response.id = response._id;
      return response;
  },

  idAttribute: "_id",
});

关于javascript - 主干 .save() 上的 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27928250/

相关文章:

javascript - Rails 4 JQuery Ajax 未显示

javascript - 文本节点不能显示为 <tbody> 的子节点。 [ react ]

node.js - WebSocket 已经处于 CLOSING 或 CLOSED 状态 Socket io

node.js - 尝试安装 BadgeKit 依赖项时出现错误

python - 如何使用 python 增加 Mongodb 的连接池大小

c++ - 使用 C++ 改进将数据加载到虚幻引擎中

javascript - Node.js Mongo 使用 $position 而 $push-ing 无法按预期工作

javascript - token '&&' 在此版本中不是有效的语句分隔符

javascript - Electron 页面导航: Loading content and attached javascript

mongodb - 对嵌入式子类的约束-Grails,GORM,Mongo