nodejs+express+mysql(后台实例项目练习2—数据库链接 网页跳转 iframe框架路径问题 模板引擎 )
原创
©著作权归作者所有:来自51CTO博客作者朋克版小红帽的原创作品,请联系作者获取转载授权,否则将追究法律责任
nodejs+express+mysql(后台实例项目练习—搭建项目)
接着上一篇 实现 数据库链接
数据库链接
创建链接数据库js 记得要npm install mysql
创建在app.js同级
module.exports=db; 设置对外接口..
//sql_db.js
var 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.js
var 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>
相对比较简单
十一去沈阳溜达 十月十二去西安溜达