2017-08-29 11 views
0

ユーザのイベントを見つける必要がありますが、ユーザIDをイベントの経路ファイルに渡すことができないため、ユーザを取得できません。経路ファイルへのパラメータの受け渡し

app.js:

var Router = express.Router(); 

Router.use("https://stackoverflow.com/users/:uid/events", events); 

events.js:結果

Router.post("/",function (req,res) { 
User.findOne({ 
    _id:req.params.uid 
},function (err, foundUser) { 
    if(err){ 
     res.json({success:false, message:"The user couldn't be found"}); 
    }else{ 
     console.log(req.params.uid); 
     console.log(foundUser); 
     var event = new Event(); 
     event.title = req.body.title; 
     event.description = req.body.description; 

     event.save(function (err) { 
      if(err){ 
       console.log(err); 
      } 
     }); 

     foundUser.events.push(event); 
    } 
}) 
}); 

uid = undefined 
foundUser = null 

がどのように私はevents.jsへのuidパラメータを渡すことができますか?

答えて

0

これはうまくいくと思います。
app.js:

var Router = express.Router(); 

Router.use("https://stackoverflow.com/users/", events); 

events.js:

Router.post("/:uid/events", function (req,res) { 
    User.findOne({ 
    _id:req.params.uid 
    },function (err, foundUser) { 
    if(err){ 
     res.json({success:false, message:"The user couldn't be found"}); 
    }else{ 
     console.log(req.params.uid); 
     console.log(foundUser); 
     var event = new Event(); 
     event.title = req.body.title; 
     event.description = req.body.description; 

     event.save(function (err) { 
     if(err){ 
      console.log(err); 
     } 
     }); 

     foundUser.events.push(event); 
    } 
    }); 
}); 
0

Lazyexpertの答えは、この問題を解決するための方法ですが、私はまさに今日探しているものを見つけました。

ルータが{mergeParams:真}含まれていることを確認し、別のルートにapp.js

Router.use("https://stackoverflow.com/users/:uid/events", events); 

からUIDを渡すために

var express = require('express'); 
var Router = express.Router({mergeParams:true}); 
関連する問題