私は現在、単純なMEANプロジェクトを進めています。私はmongo dbから1つのアイテムを引き出してWebページに表示しています。オブジェクトの情報を見るためにサイト http://localhost:3000/api/events/5782b1dbb530152d0940a227に行くたびに、nullが表示されます。私は、私が言ったように、このオブジェクトに関する情報を見ると仮定します。MongoDBのノードとエクスプレスルックアップIDの問題
コントローラ:
var mongoose = require('mongoose');
var Eve = mongoose.model('Info');
var sendJSONresponse = function(res, status, content) {
res.status(status);
res.json(content);
};
module.exports.eventsReadOne = function(req, res) {
Eve
.findById(req.params.eventid)
.exec(function(err, info){
sendJSONresponse(res, 200, info)
});
//sendJSONresponse(res, 200, {"status" : "success"});
};
モデル:
var mongoose = require('mongoose')
var eventSchema = new mongoose.Schema({
activity: String,
address: String,
});
mongoose.model('Info', eventSchema);
路線:
var express = require('express');
var router = express.Router();
var ctrlEvents = require('../controllers/events');
//events
router.get('/events/:eventid', ctrlEvents.eventsReadOne);
module.exports = router;
今、気づいたことがあり、一つのことは、その私であるここに私のコードは次のようになります私のモンゴル収集イベントに電話してください。しかし、私はイベントがJSのキーワードであることを忘れていました。私は、それを私のモデルの最後の行に表示されるInfoに "変更"しようとしました。私が言ったように、最後の番号がobj _idであるサイトhttp://localhost:3000/api/events/5782b1dbb530152d0940a227に行くと、その上のすべてのデータが表示されるはずです。代わりに、私が見るものはすべてnullです。どんな助けも素晴らしいだろう、ありがとう!
var mongoose = require('mongoose');
var dbURI = 'mongodb://localhost/mission';
mongoose.connect(dbURI)
require('./events');
'console.log(req.params)'は気をつけていますか? – kawadhiya21
はい、何も起こりそうにない、私はsendJSON応答の上に置いた、任意のアイデア? –
'event'はJSのキーワードではありません。エラー処理を追加してみてください。また、コードのどこかで 'mongoose.connect()'を呼び出すと仮定します。 – robertklep