我在我的节点应用程序中定义了路由;
app.get('/welcome',welcome);
app.get('/allusers', allusers);
app.get('/', index);奇怪的行为是,当我向浏览器‘/输入url时,它正确工作,但当我键入’alluser‘时,它会转到/路由。当我将名为‘alluser’改为'allusers1'时,这是我第一次运行该应用程序,但随后也会发生相同的行为。我是不是遗漏了什么?为什么会发生这种奇怪的行为?
我如何定义所有的用户;
module.exports = function (app, myLocalize, functions, con, router) {
app.get('/allusers', function (req, res) {
functions.setLocale(req, res, null);
sess = req.session;
if(sess && sess.user){
con.query("select * from users", function (err, result, fields){
if(err) throw err;
var usersDb = result;
res.render('allusers',
{
data: req.body,
title: myLocalize.translate("SENTESBIR Report Automation"),
templates: myLocalize.translate("Templates"),
rows: myLocalize.translate("Rows"),
users: myLocalize.translate("Users"),
reports: myLocalize.translate("Reports"),
columns : myLocalize.translate("Columns"),
logout: myLocalize.translate("Logout"),
analyses: myLocalize.translate("Analyses"),
adminMenu: myLocalize.translate("Admin Menu"),
chefMenu: myLocalize.translate("Chef Menu"),
operatorMenu: myLocalize.translate("Operator Menu"),
analysis: myLocalize.translate("Analysis"),
logout: myLocalize.translate("Logout"),
userName : functions.capitalizeFirstLetter(sess.user.firstname),
userSurname : functions.capitalizeFirstLetter(sess.user.lastname),
isAdmin : sess.user.isadmin,
isChef : sess.user.ischef,
isOperator : sess.user.isoperator,
aboutUsTitle : myLocalize.translate("SENTESBIR is a provider of innovative solutions to joining and wear problems"),
aboutUsWhatWeAreAbout : myLocalize.translate("What We're About?"),
aboutUsWhatWeAreAboutText : myLocalize.translate("SENTESBIR is a provider of innovative solutions to joining and wear problems. We have extensive materials know-how, along with comprehensive knowledge of a wide range of applications. The result is an unparalleled capability to select the most appropriate solution to meet our customers' needs."),
aboutUsWhatWeDo : myLocalize.translate("What We Do?"),
aboutUsWhatWeDoText : myLocalize.translate("Our unique ability to integrate manufacturing processes, combined with our advanced problem-solving skills, enables us to create total solutions ranging from customized alloys to full assembly of complete components and the design of application equipment. SENTESBIR's quality assurance and production control programs meet the most demanding industry specifications."),
name : myLocalize.translate("Name"),
surname : myLocalize.translate("Surname"),
isOperator : myLocalize.translate("Is Operator"),
isAdmin : myLocalize.translate("Is Admin"),
isChef : myLocalize.translate("Is Chef"),
yes : myLocalize.translate("Yes"),
no : myLocalize.translate("No"),
email : myLocalize.translate("E-Mail"),
usersDb : usersDb
});
});
}else{
res.redirect('/');
}
});
return module;}我在app.js里怎么称呼它
var users = require('./pages/allusers.js')(app, localization.myLocalize, functions, db.con, router);我的路线定义顺序;
var users = require('./pages/allusers.js')(app, localization.myLocalize, functions, db.con, router);
var main = require('./pages/welcome.js')(app, localization.myLocalize, functions, db.con, router);
var logout = require('./pages/logout.js')(app, localization.myLocalize, functions, db.con, router);
var login = require('./pages/login.js')(app, localization.myLocalize, functions, db.con, router);
app.get('/', function (req, res) {
res.redirect('/login');
});我已经添加了下面的代码来获取所有的路线
app._router.stack.forEach(function(r){
if (r.route && r.route.path){
console.log(r.route.path + " " + r.route.stack[0].method)
}});结果是:
/allusers get
/welcome get
/logout get
/login get
/login邮政
/得到
发布于 2018-03-24 09:54:00
我已经将"/allusers“改为"/qaallusers”,现在它正在按预期工作。我不知道发生了什么。也许快速路由是按字母顺序排列的,而"/“是在破坏某些东西,这是我最近的猜测。也许是特快的窃听器。无论如何,这个问题现在似乎已经解决了。
https://stackoverflow.com/questions/49462796
复制相似问题