Heroku 无法在 nodejs 的 express-router 上拥有从“@”开始的路由

Posted

技术标签:

【中文标题】Heroku 无法在 nodejs 的 express-router 上拥有从“@”开始的路由【英文标题】:Heroku unable to possess routes starting from '@' at express-router in nodejs 【发布时间】:2017-07-16 04:06:48 【问题描述】:

我已经将一个由 NodeJS、Express 和 MongoDB使用 Mongoose 制作的简单应用推送到 Heroku,但是我的一个路由器无法正常工作。

我制作了一个路由器起始表单 @ 用于显示用户的配置文件,它在我的本地主机上运行良好,但在 Heroku 生产时让我回到错误页面。

在 Heroku 中使用 @ 是错误的约定吗?有什么办法吗?

以下是截图:

在heroku的生产阶段

在 localhost 的同一路线

这是我的路由器配置:routes.js: 我正在使用 PassportJs 进行用户身份验证。

app.get('/@:username', sabSettings, function(req, res) 
    var currentUser = req.user;
    process.nextTick(function() 
        User.findOne( 'local.username': req.params.username , function(err, user) 
            var usertofind = user;
            if (err)
                throw err;
            if (!user)
                res.render('profile/p404', 
                    title: req.params.username + ' Not Found | eduBird',
                    setting: req.setting,
                    usertofind: req.params.username,
                    user: currentUser ? currentUser : 'ann'
                );
            else 
                res.render('profile/display', 
                    title: usertofind.local.name + ' Profile | eduBird',
                    setting: req.setting,
                    user: currentUser ? currentUser : 'ann',
                    requser: usertofind
                );
            
        );
    );
);

这个系统在 localhost 上对每个用户都可以正常工作,但在 Heroku 上却不行。

您的建议/帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我自己解决了这个问题。 实际上这是.pug 的问题,而不是Heroku 服务器的问题。 Here 是主要错误,显示的是哪个浏览器,以及我是如何修复的。

【讨论】:

以上是关于Heroku 无法在 nodejs 的 express-router 上拥有从“@”开始的路由的主要内容,如果未能解决你的问题,请参考以下文章

无法将 nodejs 应用程序部署到 heroku

Heroku:NodeJS Express 服务器无法提供图像

端口 34037 已在使用 Heroku + Nodejs + Express + WebSockets

在heroku上成功部署后Rails应用程序无法正常工作?

在heroku上部署Nodejs+Express+React+Webpack应用

无法为 nodejs web3 推送到 heroku - 它正在尝试找到 web3@1.0.0-beta.42 postinstall