第一章 原课第 十八
————————————————————————————————————2020-02-20
node开发笔记
- npm install express mysql express-static body-parser cookie-parser cookie-session consolidate ejs express-router multer -d
新建目录:node-web
____________________________________
libs
node_modules
route
|admin
|web
static
template
admin
web
package.json
server.js
________________________________________2020-02-20 15:00
安装和引用架构所需组件 server 文件内容中写入
const express = require('express');
const static require('express-staitc');
const bodyParser=require('body-parser');
const multer=require('multer');
const cookieParser = require('cookie-parser');
const cookieSession = require('cookie-session');
const consolidata = require('consolidata');
const expressRoute= require('express-route');
var server = express();
server.listen(80);
//获取请求
server.use(multerObj.any());
//中间件加入cookie 方便取,写是不需要中间件的
server.use(cookieParse());
(function(){
var keys=[];
for(var i = 0; i<1000; i++){
keys[i]="a"+Math.random();
}
server.use(cookieSession({
name: 'sess_id';
keys: keys,
maxAge:20*60
}));
})();
//——————————使用模板 模板三步曲
server.engine('html',consoledata.ejs);
server.set('views','template');
server.set('view engine', html)
// route___________________________________路由使用_
var user_router = express.Router();
var admin_router = express.Router();
server.get('/user/',user_router);
//+++++++++++++++++++++++++++++++++++++++++使用用户路由
user_router.use('/XXX',function(req,res){
res.send('我是用户路由的XXX').end();
})
user_router.use('/bbb',function(req,res){
res.send('我是用户路由的XXX').end();
})
//这样一层一层写route 不方便,建议写一个函数放在外面导包
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
示例代码:
++++++++++++++++++++++++++++++++++++++++++++
var r1 = createrouter()
server.use('/user/',createRouter()); ++
function createrouter(){
var router = express.Router()
router.use('/1.html',function(req,res){
res,send("ok").end();
});
router.use('txtindex',function(req,res){
res.send('errmmmm').end()
});
return router;
}
+++++++++++++++++++++++++++++++++++++++++++++
//当然呢,放在其它包不是更香吗?
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
module.export = function(){ var router = express.router(); router.use('/index',function(req,res){ res.end('ok').end() }) return ruter; }
引用时,var createRouter = require('./route/1.js'),,上面记了要引入 const express = quire('express')
//|++++++++++++++++++++++管理后台的路由
admin_router.use('/',function(req,res){
res.send('我也是文章,但是我是admin的').end();
})
____________________________________________________________2020-02-21
Route 不能用get 只能用use
static 静态
++++++++++++++++++++++++++++++++++++++++++++++++++++++++2020-02-21
onclick="return confirm('你确定要这样吗?')
+++++++++++++++++++++++++++++++++++++++++++++++2020-02-21-09:30
//以下代码纯属练习,复习用记录
server.use('/',require('/route/web.js'));
var foo = require('./route/web.js')
server.use('/',foo)
+++++++++++++++++++++++++++导包,导入外面路由
const express require('express')
module.exports = function(){
var router=express.Router();
router.get('/',(req,res)=>{
res.send('aaa').end()
})
}
+++++++++++++++++++++++ 外理admin登录
router.use('/',()=>{
if(req.sesion['admin_id']&&req.url!='/login'){
res.redirect('/');
}sele{
next()
}
})
//get时渲染界面
router.get('login',(req.res)=>{
res.render('admin/login.ejs')
})
//post 时理数据
router.post("/login",(req,res)=>{
var username = req.body.username;
var password = common.md5(req.body.password+common.Md5_syffix)
//这儿使用的db需要提前连接
db.query('select * from admin_table wherh username='${username}');
(err,data)=>{
if(err){
console.error(err);
res.status(500).send('adatase error').end();
}else{
if(data.length==0){
res.status(400).send('no this admin id ').end();
}else{
if(data[0].password == password){
req.session['admin_id']==data[0].id
res.redirect('/admin/');
}
}else{
res.status(400).send('this password is incorrect').end();
}
}
}
})
return router;
}
+++++++++++++++++++++++++++++++++++++md5加密
const crypto =requie('crypto')
var md5_syffix = "foo";
var obj = crypto.createHash)('md5')
obj.update('123456');
var str = obj.digest('hex')
console.log(str)
+++++++++++++++++++++++++++++++++++++将加密封装成包
新建一个文件 libs/common.js
+++++++++++++++++++++++++++++++++++++++++++++++
const crypto = require('crypto');
module.exports = {
md5: function(str){
var obj = crypto.createHash('md5');
obj.updata(str)
return obj.digest('hex');
}
}
//使用的时候只需要
_____________________________________________________
const common = require('/libs/common')
var a = common.md5('12345')
console.log('a');
+++++++++++++2020-02-20
___________________ javascrip______________________技
onlick = "return conrirm("你确定吗")
++++++++++++++++++++++++++++++++++++++++++++++++
<a href = "?act=mod&id=<banner[i].id%">
<a href = "?act=del&id=<%=banners[i].id%>">
router.get(_'./bandners',(req,res)=>{
switch(req.query.act){
case 'mod':
break;
case 'del':
break
default:
db.query('select * from banner_table',(err,banners)=>{
})
}
})
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++