Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将用户名附加到../profile/<;用户名>;这样每个用户都有一个唯一的页面-中庸玉_Javascript_Url_Pug_Profile_Mean - Fatal编程技术网

Javascript 如何将用户名附加到../profile/<;用户名>;这样每个用户都有一个唯一的页面-中庸玉

Javascript 如何将用户名附加到../profile/<;用户名>;这样每个用户都有一个唯一的页面-中庸玉,javascript,url,pug,profile,mean,Javascript,Url,Pug,Profile,Mean,我负责为每个用户设置个人资料页面。我已经设置了一种路由到“./profile/:username”的方法,但是我不知道如何为每个用户呈现一个唯一的页面 这是我从index.js获得的信息 router.get('/profile/:userName', function (req, res) { //find user object from database var userName = req.params.userName; var userObject = userlistd

我负责为每个用户设置个人资料页面。我已经设置了一种路由到“./profile/:username”的方法,但是我不知道如何为每个用户呈现一个唯一的页面

这是我从index.js获得的信息

router.get('/profile/:userName', function (req, res) {
  //find user object from database
  var userName = req.params.userName;
  var userObject = userlistdb.find({ username: userName });
  //route through to the user's unique profile page
  res.render('profile/' + userObject.username, { ObjectId: userObject._id});});
我的个人资料.jade非常糟糕,所以我不想麻烦分享

我们的应用程序连接到一个远程Mongo数据库,据我所知,它被正确调用。当我从数据库路由到用户页面时,在views目录中出现错误“查找视图失败”profile/undefined。因为没有/profile/[username].jade文件供任何用户使用,因此无法使用

我怎样才能避开这个问题?我是否需要为每个用户创建一个新的jade文件


谢谢

您无法呈现文件
profile/:userId
,因为它不存在,所以

res.render('profile/' + userObject.username)
将引发异常,但您可以做的是为特定用户呈现
profile\u页面

  • 对数据库调用使用回调
  • 创建2-3个视图(
    error.jade,profile\u not\u found.jade,profile\u page.jade
路由器应该是这样的

router.get('/profile/:userName', function (req, res) {
    //find user object from database
    var userName = req.params.userName;

    //findOne will return single user instance
    userlistdb.findOne({username: userName}, function(err, user){
        if(err){
            //render some error page 
            //pass error, populate view, or just send InternalServerError(500)
            res.render('error', {err: err}); 
        } else if (!user){
            //render 404 or more specific page
            //pass not found username
            res.render('profile_not_found', {username: username}); 
        } else {
            //render user page
            //route through to the user's unique profile page
            res.render('profile_page', {user: user}); //pass user, populate view
        }
    });
});

无法呈现文件
profile/:userId
,因为它不存在,所以

res.render('profile/' + userObject.username)
将引发异常,但您可以做的是为特定用户呈现
profile\u页面

  • 对数据库调用使用回调
  • 创建2-3个视图(
    error.jade,profile\u not\u found.jade,profile\u page.jade
路由器应该是这样的

router.get('/profile/:userName', function (req, res) {
    //find user object from database
    var userName = req.params.userName;

    //findOne will return single user instance
    userlistdb.findOne({username: userName}, function(err, user){
        if(err){
            //render some error page 
            //pass error, populate view, or just send InternalServerError(500)
            res.render('error', {err: err}); 
        } else if (!user){
            //render 404 or more specific page
            //pass not found username
            res.render('profile_not_found', {username: username}); 
        } else {
            //render user page
            //route through to the user's unique profile page
            res.render('profile_page', {user: user}); //pass user, populate view
        }
    });
});

因为我主要是自己修复的,所以我会在这里为其他可怜的灵魂发布我的修复。我刚刚从我的渲染调用中删除了“+userObject.username”,因为该视图不存在。因为我主要是自己修复的,所以我将在这里为其他可怜的灵魂发布我的修复。我刚刚从渲染调用中删除了“+userObject.username”,因为该视图不存在。