express实现多级路由文件
在express开发的过程中无比需要对路由的合理分配,以及多极路由的合理部署:
const express = require('express');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const app = express();//根据不同的功能 划分模块 (动态)
//app.use('/admin',require('./routers/admin.js'));
app.use(cookieParser());
app.use(bodyParser.json());
app.use('/user',require('./routers/user.js'));
app.use('/',require('./routers/main.js'));app.listen(9093,(res,req)=>{console.log('Node app start at port 9093');
});
const app = require('express');
const router = app.Router();
const https = require('https');var str = '';
router.get('/',(req,res)=>{var str = '';var req = https.get('https://www.sojson.com/open/api/weather/json.shtml?city=%E6%B7%B1%E5%9C%B3',(ress)=>{ress.on('data', (d) => {str += d;});ress.on('end',(e)=>{//console.log(str);res.json(str);})})
})module.exports = router;
const app = require('express');
const utility = require('utility'); //加密模块
const router = app.Router();
const UserModel = require('../model.js'); //数据库结构
const User = UserModel.getModel('user');
const filter = { pwd:0, __v:0 }router.get('/info',function(req,res,next){//1. cookie校验//res.json({ 'name': 'admin','isLogin': false });let cookie = req.cookies;if(!cookie.userid){return res.json({code:1,isLogin:false,msg:'用户未登录'}); }//查询该用户ID是否存在User.findOne({_id:cookie.userid},filter,function(err,doc){if(err){return res.json({code:1,isLogin:false,msg:'服务器出现错误'});}return res.json({code:0,isLogin:true,msg:'用户已登陆',data:doc});})});// 注册响应 /user/register
router.post('/register',function(req,res){const {user, pwd, type} = req.body;//查询是否已经存在该用户User.findOne({user},(err,doc)=>{if(doc){return res.json({code:1,msg:'该用户已存在'})}let userModel = new User({user, type, pwd: encryption(pwd) });userModel.save((err,doc)=>{if(err){return res.json({code:1,msg:'服务器出现错误'})}res.cookie('userid',doc._id);return res.json({code:0,msg:'注册成功'})})})
});// 登陆响应 /user/login
router.post('/login',(req,res)=>{const {user, pwd} = req.body;//查询是否能够匹配用户名密码保持一直的字段User.findOne({user,pwd:encryption(pwd)},filter,(err,doc)=>{if(doc){res.cookie('userid',doc._id);return res.json({code:0,msg:'登陆成功',data:doc})}return res.json({code:1,msg:'用户名或密码错误'})})
})router.get('/list',function(req,res,next){User.find({},function(err,doc){return res.json(doc);})
});router.get('/remove',function(req,res,next){User.remove({},function(err,doc){return res.json(doc);})
});//加密
function encryption(pwd){//默认前缀var front = '!!!WEB#@2018_account_';return utility.md5(utility.md5(front+pwd));f
}module.exports = router;
express实现多级路由文件相关推荐
- express中间件和路由教程
一.路由 1.通常HTTP URL的格式是这样的:http://host[:port][path] http表示协议. host表示主机. port为端口,可选字段,不提供时默认为80. path指定 ...
- vue3.0+ts+element-plus多页签应用模板:多级路由缓存
目录 系列文章 一.先说点啥 1. 为啥需要路由缓存? 2. 怎么实现路由缓存? 二.路由扁平化 三.定义tag模块处理路由缓存 四.切换路由时加入缓存 五.使用keep-alive 系列文章 vue ...
- react-router多级路由设置默认子路由
react-router多级路由设置默认子路由 最终效果图 目录文件路径 代码 最终效果图 目录文件路径 代码 src/App.js 多级路由的Route配置不能加 exact, 否则子路由匹配不进去 ...
- nodejs的express实现上传文件到七牛
本文实现上传文件到七牛,动态切换上传空间,MD5设置key值,点击复制七牛返回的链接. 在七牛中注册开发者,获取key 七牛官网--管理控制台(偏右上角)--个人中心(获取秘钥)--对象存储,新建存储 ...
- 用Gitee Pages服务在线预览vue3前端项目:静态网站+多级路由+history模式(踩坑)
目录 目标与前提 vue打包.预览遇到的坑以及原因 坑①:静态网站打开一片空白 坑②:子路由刷新或直接输入时,网页一片空白或404 坑③:首页加载时间过长 坑④:线上预览地址出错时,不显示404页面 ...
- vue路由文件自动化处理
你还在一个个路由文件引入而烦恼吗 你还被别人说,你只是一个只会ctrl+ c ctrl +v的码仔吗 可是 做个与世无争的垃圾不好吗 global.ts // 可以把检测的类型去掉,转成js// 关键 ...
- 渲染静态页面、get请求、post请求、express框架、路由、中间件
1. 渲染静态页面 const http = require('http'); const fs = require('fs'); const url = require('url'); const ...
- 【Vue路由】多级路由、路由传参、命名路由、params使用
文章目录 多级路由 案例实验 总结 路由传参 案例实验 总结 命名路由 路由的params参数 多级路由 案例实验 我们尝试做出如下的效果: 首先项目结构: 我们直接看四个路由组件: About.vu ...
- React多级路由 React子路由
React多级路由 React子路由设置 新建一个Home.jsx文件 和Home.css文件 css文件内容就不写了 Home 文件内容如下 为了解决点击Link时,路由变化而子路由页面未变化,所以 ...
最新文章
- JSBinding+SharpKit / 菜单介绍
- Robots at Warehouse(搜索+vector的使用)
- 第四届AutoDL挑战赛——AutoSpeech2019正式开赛
- 深入理解 Java 垃圾回收机制
- 刷新SqlServer所有视图【存储过程】
- Java实例化后自动执行_Java的实例化顺序(程序执行顺序)
- QT 5.12.9 +VS 2019配置并实现与三菱Q系列PLC通讯功能(1)软件的安装
- 【php】相对路径/绝对路径报错?
- vue项目IE浏览器中打不开,为空白页
- Autowired注解与Resource注解的区别
- 去追寻,趁我们还年轻。
- 第三周上机实践项目 项目4--委派任务
- jenkins自动打包报错:cannot find symbol
- 【pytest】(六) pytest中fixture的使用
- 移动端rem字体大小适配
- 服务器到底是个什么东东?跟电脑有啥区别?
- 预测算法——指数平滑法
- 西安~培养我的文艺范儿
- 一次美团外卖apk分析学习
- 数据分析——数据处理