からデータを返すのfindAll。マングースは、異なるモデル<strong>users.js</strong>で
Mongoのドキュメントは、次のようになります。ドキュメントを取得しようと、それはこのハンドラでは正常に動作し、その後
{
"_id" : ObjectId("574fb94f6a1e7d1826c16058"),
"username" : "user1",
"tasks" : [ ],
"__v" : 0
}
:handlerA.jsで
:
var User = require('../models/users.js');
module.exports.getUser = function(req, res){
User.findOne({username: "user1"}, function(err, data){
if(err){
console.log('getUser err', err);
res.send('ERROR')
} else {
console.log('getUser fx success = ', err, data);
res.send(data)
}
});
};
console.log
の結果:
のgetUser FX成功= NULL {タスク:[]、__v:0、ユーザ名: 'USER1'、_id:574fb94f6a1e7d1826c16058}
同じコードが、この他のハンドラに失敗別のファイル。
var User = require('../models/users.js');
module.exports.addStuff = function(req, res){
User.findOne({username: "user1"}, function(err, data){
if(err){
console.log('addStuff err', err);
res.send('ERROR')
} else {
console.log('addStuff fx success =', err, data);
res.send(data)
}
});
};
console.log
の結果:handlerB.jsで
addStuff FXの成功ヌルヌルしようとしました
....と失敗しました。.. ..
モンゴースはモデル名を複数形にしているので、 "blogposts"ではなく "blogposts"コレクションで検索しています。つまり、mongoシェルのクエリは "blogmodel"コレクションにあります。その場合:
var BlogModel = mongoose.Model("BlogModel", ..)
又は第PARAMとしてコレクション名を渡す:
var BlogModel = mongoose.model("BlogPost", schema, "blogmodel")
この溶液ヌル文書ならびにhandlerB.jsを返すhandlerA.jsもたらします。
お時間をいただきありがとうございます。とても有難い。
追加。 私は、ユーザモデルと仕事モデルの両方でfind({})を実行しました。handlerB.js 返されるドキュメントは、タスクモデルに基づいています。 User.find({})とTasks.find({})のconsole.logsを参照してください。 errはデータの次にヌル値です。
どのようにひどく私はものを壊しましたか? Model.findは、モデルにもないデータをどのように返すことができますか?
User.find({},funtion(err, data) ____________________
console.log of err then data
null
[ { subtasks: [],
team: [ [Object] ],
__v: 0,
maintask: '1',
_id: 574fce63d744cba421f750c1
},
{ subtasks: [],
team: [ [Object] ],
__v: 0,
maintask: '2',
_id: 574fce65d744cba421f750c2
}
]
Tasks.find({},function(err, data) ___________________
console.log of err then data
null
[ { subtasks: [],
team: [ [Object] ],
__v: 0,
maintask: '1',
_id: 574fce63d744cba421f750c1 },
{ subtasks: [],
team: [ [Object] ],
__v: 0,
maintask: '2',
_id: 574fce65d744cba421f750c2
},
]
mongoose docsはそうのようなモデルを定義することをお勧め tasks.js
var mongoose = require('mongoose');
var subtaskSchema = new mongoose.Schema({
subtask: {
type: String,
},
team: {
type: Array,
'defualt': [],
},
done: {
type: Boolean,
'defualt': false,
},
});
var Tasks = mongoose.model('tasks', {
maintask: {
type: String,
},
subtasks: {
type: [subtaskSchema],
},
team: {
type: Array,
'defualt': [],
},
done: {
type: Boolean,
'defualt': false,
},
});
module.exports = Tasks;
どのようにaddStuffとgetUserを呼び出していますか? – timhysniu
var express = require( 'express'); var app = express(); var bodyParser = require( 'body-parser'); //データベース var mongoose = require( 'mongoose'); mongoose.connect(process.env.MONGOLAB_URI || 'mongodb:// localhost/taskmaster'); –
//リクエストを処理する var handleUsers = require( './ server/services/handleUsers.js') app.post( '/ addUser'、handleUsers.addUser); app.get( '/ getUser /:username'、handleUsers.getUser); app.get( '/ getAllUsers'、handleUsers.getAllUsers); –