菜鸟一枚,今天写代码的时候发现一个bug
先上代码
inapi.js
let express = require('express'); let router = express.Router(); const crypto = require('crypto');//引入加密模块 //用sha256生成口令 function inapiToken(data) { return crypto.createHash('sha256','dht').update(data).digest('hex'); } router.get('/inapi/*', function(req, res, next) { if(inapiToken(req.cookies.userName)===req.session.login){ /* let _reqUrl=req.url.substring(1); let URL=_reqUrl.substring(6); console.log(URL); */ //console.log(req.session.locals); next(); }else{ res.send('未登录'); } }); module.exports = router;
注意我这里是打算用内部接口的话都统一为/inapi/为开头。
这里我新建文件夹名称为external的时候,最后只要我的路由文件在external里面那么结果就不会走inapi.js文件
测试情况,只要的路由文件移出external目录下面那么又能够正常走inapi.js文件
所以这里记录下,文件夹名称不能创建为external
2018-06-14新增
最终发现实际上是inapi的文件路径层级太低了,把inapi的目录提高到和index.js同一级的时候,一切正常。
但是这里发出疑问,因为我新增的路由实际上目录比inapi.js还要深,但是其他文件没问题,并且我下午新建目录为workingcondition的时候也发生了和上午一样的情况。
这里不知道原因,但是解决方式就是把你的路由的层级设置最高,就没问题了。
也可能是我的自动路由注册的问题,遍历的时候先遍历上层,再遍历下层导致。具体原因没有详细测试,不明。