nodejs+express+mysql(后台实例项目练习—搭建项目)
接着上一篇 实现 数据库链接
数据库链接
创建链接数据库js 记得要npm install mysql
创建在app.js同级
module.exports=db; 设置对外接口..
//sql_db.jsvar mysql = require('mysql');var db =mysql.createConnection({host:'localhost',port:3306,user:'root',password:'root',database:'sys_db'});module.exports=db;
网页跳转
在路由index.js里写 登录验证
这里因为在访问结束的时候 写了一个DB.end 报了一个错误
node-mysql: connect时的”Cannot enqueue Handshake after already enqueuing a Hand shake”错误
前台Login.ejs 用的post 提交表单 到/login
body 是express独有的属性 能获得前台数据
//index.jsvar express = require('express');var router = express.Router();var db = require('../sql_db.js');/* GET home page. */router.get('/', function(req, res, next) {res.render('sys_login', { title: 'Express' });});router.post('/login',function(req,res,next){var username = req.body.username;var password = req.body.password;db.query('select * from loginuser where username=? and password=?',[username,password],function(err,results){if(err){console.log(err);}else if(results.length>0){//界面转到index界面res.render('sys_index.ejs');}})})module.exports = router;
iframe框架路径问题
上面登录后 界面发现头部加载没有问题 但是中间部分 加载失败了
找了一下原因
解决:
1)修改成路径
<iframe src="/adduser" id="mainframe" width="100%" height="600px" scrolling="no"></iframe>
2)修改app.js
因为我不想从新弄一个路由 直接用users 的 这样 当localhost:端口号/的时候 就会访问下面俩个路由
// app.use('/', indexRouter);// app.use('/users', usersRouter);app.use('/', [indexRouter,usersRouter]);
3)修改users.js 路由
这里就和frame 标签 src="/adduser" 匹配上 并加载user_add.ejs界面
就是这个项目里 所有frame标签 src="/adduser" 就会加载 user_add.ejs
var express = require('express');var router = express.Router();/* GET users listing. */router.get('/adduser', function(req, res, next) {res.render('user_add.ejs');});module.exports = router;
模板引擎
express中ejs模板的基本使用(意外金喜)
修改index.ejs 里的登录信息为数据库实时信息
在index.js路由转换界面的时候传入对象
router.post('/login',function(req,res,next){var username = req.body.username;var password = req.body.password;db.query('select * from loginuser where username=? and password=?',[username,password],function(err,results){if(err){console.log(err);}else if(results.length>0){//界面转到index界面res.render('sys_index.ejs',{username:results[0]['userName']});}})})
<div class="logo_text">欢迎系统管理员: <span><%=username%></span> <%=(new Date()).getFullYear()%>年<%=(new Date()).getMonth()%>月<%=(new Date()).getDate()%>日 <% var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];var day= weekday[(new Date()).getDay()]%><%-day%></div>
相对比较简单
十一去沈阳溜达 十月十二去西安溜达