これは私のjsファイルで、動作しないスキーマとAPIを記述したものです。コマンドラインツールでこれを行うと、スキーマはかなり簡単になり、簡単なfindコマンドを実装しました。mongooseを使用してノードスクリプト経由でmongodbレコードを保存できません
'use strict'
var util = require('util');
var bcrypt = require('bcrypt');
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var validatePresenceOf = function(value){
return value && value.length;
};
var toLower = function(string){
return string.toLowerCase();
};
var SportsStandings = new Schema({
'sport' : { type : String,
validate : [validatePresenceOf, 'a sport is required'],
set : toLower
},
'league' : { type : String,
validate : [validatePresenceOf, 'a league is required'],
set : toLower
},
'division' : { type : String,
validate : [validatePresenceOf, 'a division is required'],
set : toLower
},
'teamName' : { type : String,
validate : [validatePresenceOf, 'a teamName is required'],
set : toLower
},
'wins' : { type : Number, min: 0,
validate : [validatePresenceOf, 'wins is required'],
},
'losses' : { type : Number, min: 0,
validate : [validatePresenceOf, 'losses is required'],
}
});
SportsStandings.statics.findTeamRecord = function(sport, league,
division, teamName,
cb) {
return this.find({'sport' : sport, 'league' : league,
'division' : division, 'teamName': teamName}, cb);
};
SportsStandings.statics.findBySport = function(sport, cb) {
return this.find({'sport' : sport}, cb);
};
module.exports = mongoose.model('SportsStanding' , SportsStandings);
、ここで上記のエクスポートされたオブジェクトをインスタンス化し、モデルにsaveコマンドを実行するためにしようと、単純なノードのスクリプトです.....
'use strict'
var util = require('util');
var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/mydb');
var SportsStanding = require('../schemas/SportsStandings');
var record = new SportsStanding({
'sport' : 'mlb',
'league' : 'AL',
'divison' : 'east',
'teamName' : 'New York Yankees',
'wins' : 10,
'losses' : 1});
record.save(function(err) {
console.log('error: ' + err);
SportsStandings.find().all(function(arr) {
console.log(arr);
console.log('length='+arr.length);
});
});
process.exit();
どのようなエラーが表示されますか?それがうまくいかないと言うと、私たちが問題を診断するのに役立つ出力がありますか? –
何も起こりません。コマンドラインのnode:node sportsStandings.jsを使用してプログラムを実行します。mongoコマンドラインツールを使用して、これまでのところデータベースにコミットされたエラーも何もありません。 mongoコマンドラインを使用してdb.sportsStandings.insert(....)を実行すると、それは機能します。 – SPODOG