【问题标题】:Properties are not created when I use mers with node.js and mongodb当我将 mers 与 node.js 和 mongodb 一起使用时,不会创建属性
【发布时间】:2012-12-20 14:34:19
【问题描述】:

我正在尝试使用 mers 通过 mers 将数据存储在 mongoDB 中。这是我设置的摘录:

文件模型/Plan.js

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

var PlanSchema = new Schema({
    name: String
});

var plan = module.exports.plan = mongoose.model('plan', PlanSchema);

在 app.js 我有

"use strict";

/**
 * Module dependencies.
 */

var express = require('express'),
    routes = require('./routes'),
    mongoose = require('mongoose'),
    mers = require('mers');

var Plan = require('./models/Plan').Plan;

var app = module.exports = express.createServer();

// Configuration

app.configure(function () {
  app.set('view engine', 'ejs');
  app.set('view options', { open: '<?', close: '?>' }); // match ejs in st2
  app.set('views', __dirname + '/views');
  app.set('partials', __dirname + '/views/partials');

  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser());
  app.use(express.session({ secret: 'your secret here' }));
  app.use(app.router);

  // Database Connection (this works)
  uri = 'mongodb://username:password@address';
  mongoose.connect(uri);

  app.use('/rest', mers({mongoose: mongoose}).rest());

  app.use(require('less-middleware')({ src: __dirname + '/public' }));
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function () {
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function () {
  app.use(express.errorHandler());
});

// Routes

app.get('/', routes.index);

app.listen(3000);
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);

我尝试通过调用来创建计划

curl -i -X POST -d '{"name":"foo"}' http://localhost:3000/rest/plan

结果:在 mongodb 集合 'plans' 中创建了一个条目,看起来像

{
    "_id": {
        "$oid": "50d0f2f2234005ef27000004"
    },
    "__v": 0
}

我缺少计划架构中定义的“名称”属性。怎么了?

【问题讨论】:

    标签: node.js mongodb express schema


    【解决方案1】:

    错误不在 JavaScript 代码中,是 curl 请求:

    curl -X POST -H "Content-Type: application/json" -d '{"name":"foo"}' http://localhost:3000/rest/Plan
    

    感谢https://stackoverflow.com/a/1836922/449436

    【讨论】:

      猜你喜欢
      • 2021-01-02
      • 2021-12-20
      • 1970-01-01
      • 2021-12-04
      • 2016-09-08
      • 2021-10-22
      • 2014-10-30
      • 1970-01-01
      • 2016-10-13
      相关资源
      最近更新 更多