为了账号安全,请及时绑定邮箱和手机立即绑定

express中一个诡异的现象

express中一个诡异的现象

HUX布斯 2019-03-30 09:32:50
varexpress=require('express');varpath=require('path');varfavicon=require('static-favicon');varlogger=require('morgan');varcookieParser=require('cookie-parser');varbodyParser=require('body-parser');varroutes=require('./routes/index');varusers=require('./routes/users');varapp=express();//viewenginesetupapp.set('views',path.join(__dirname,'views'));app.set('viewengine','jade');app.use(favicon());//app.use(logger('dev'));app.use(bodyParser.json());app.use(bodyParser.urlencoded());app.use(cookieParser());app.use(express.static(path.join(__dirname,'public')));app.use('/',routes);app.use('/users',users);///catch404andforwardtoerrorhandlerapp.use(function(req,res,next){varerr=newError('NotFound');err.status=404;next(err);});上面是用express初始化的代码,下面是index.js的代码varexpress=require('express');varrouter=express.Router();/*GEThomepage.*/router.get('/',function(req,res){console.log("index");res.render('index');});module.exports=router;我访问http://localhost:3000/的时候直接返回的是public/index.html,没有通过router,也就是说console.log('index')这句没打印出来,如果把static那句放到路由设置后面的话就有打印,不知道是怎么回事?麻烦大家帮忙解答一下追加:如果我把public文件夹底下的index.html文件移除掉就可以通过路由了,难道express会先查看public底下有没有index.html文件吗?如果有就加载没有的话再走路由?
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

把app.use('/',routes);放到app.use(express.static(path.join(__dirname,'public')));前面,express是按顺序匹配路由的。
                            
查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 325 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信