javascript - 如何将用户名附加到我的 ../profile/<username> URL 中,以便每个用户都有一个唯一的页面。 -平均 - Jade

标签 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 = userlistdb.find({ username: userName });
  //route through to the user's unique profile page
  res.render('profile/' + userObject.username, { ObjectId: userObject._id});});

我的 profile.jade 非常糟糕,所以我不会费心分享。

我们的应用程序已连接到远程 Mongo 数据库,据我所知,它被正确调用。当我从数据库路由到用户页面时,出现错误“无法在 View 目录中查找 View “profile/undefined””。因为任何用户都没有/profile/[username].jade 文件,所以这不起作用。

如何解决这个问题?我需要为每个用户创建一个新的jade文件吗?

谢谢

最佳答案

您无法渲染文件profile/:userId,因为它不存在,因此

res.render('profile/' + userObject.username)

会抛出异常,但您可以做的是为特定用户呈现profile_page

  • 在数据库调用中使用回调,
  • 创建 2-3 个 View (error.jade、profile_not_found.jade、profile_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
        }
    });
});

关于javascript - 如何将用户名附加到我的 ../profile/<username> URL 中,以便每个用户都有一个唯一的页面。 -平均 - Jade ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329571/

相关文章:

javascript - React react-router-dom 将 Prop 传递给组件

javascript - 在基于 css 的选项卡结构中打开特定选项卡

javascript - JavaScript 运行时中的微观任务和宏任务

angularjs - ng-repeat 具有特定 ID 的文档内部

javascript - package.json 文件在资源管理器可视代码中不可见

Javascript 获取实际的 url 来填写表单

android - 包含拉丁字符的 URL 的 FileNotFoundException

python - 爬取时存储 URL

pug - 部分变量与父模板中的变量不同

javascript - 结合 react 和 Jade