REST API に問題があります。mongodb と正しく通信しません。Node.js は次の例外をスローします。
エラー: 渡された引数は、12 バイトの単一の文字列または 24 の 16 進文字の文字列でなければなりません
私のマネージャーは次のようになります。
app.get('/users/:id', function(req, res) {
userProvider.fetchUserById(req.params.id, function(error, user) {
if (user == null) {
res.send(error, 404);
} else {
res.send(user);
}
});
});
私のプロバイダーは次のようになります。
this.fetchUserById = function(id, cb) {
this.db.collection(usersTable, function(error, users) {
if (error) {
cb(error, null);
} else {
users.findOne({
_id:users.db.bson_serializer.ObjectID.createFromHexString(id)
}, function(error, result) {
cb(error, result);
});
}
});
};
私の Mongoobject は次のようになります。
{ "title": "title", "givenname": "Vorname", "lastname": "Nachname", "name": "Vorname Nachname", "username": "Benutzername", "password": "Kennwort", "email": "kuerzel@emailadresse.de", "phone": "0000 - 000000", "fax": "000000 - 000000", "lastlogin": "15.11.2013", "createdate": "15.11.2013 ", "changedate": "15.11.2013", "state": "1", "_id": ObjectId("5283fbf56e3adb01f1000001") }
GET: /users/1 を送信すると、エラーがスローされます。
私はNode.jsが初めてです。:-)