Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)


Posted in Javascript onDecember 10, 2015

在上篇文章给大家介绍了express实现前端后端通信上传图片之存储数据库(mysql)傻瓜教程(一)

数据库如标题,使用开源的mysql为基础,我是下载的解压版本(自行百度就有,用百度下载的就行),配置过程https://3water.com/article/76206.htm,本人在安装过程中,对于配置my.ini文件着实找了好久的教程,所以贴上本人的my.ini文件

[mysqld]
basedir="D:/MySql" 
datadir="D:/MySql/data" 
port = 3306
socket = "/tmp/mysql.sock"
[client] 
password = 
port = 3306
socket = "/tmp/mysql.sock"
default-character-set = utf8

可以看到我的mysql是安装在Mysql文件夹下的,大家可以按照自己的路径进行修改。

然后在bin文件夹下运行

mysqld -install

安装mysql服务,然后启动服务。

net start mysql

上面的配置mysql教程链接中有navicat for mysql的下载地址(是mysql的可视化工具),还有注册的信息,不想打命令行的同学可以下载使用,更加方便些。

第一次登陆数据库

mysql -uroot -p

直接回车,没有密码。

(ps:我在使用中手动填写数据库时,输入中文时会有乱码问题,解决方案如下:右键一个数据库,然后选择数据库属性,修改字符集为utf8格式,整理选择第一个就行,如图:
        )

下面就要使用node连接数据库了。各位看官可以泡杯茶继续~。

felixge/node-mysql是一个纯nodejs的用javascript实现的一个MySQL客户端程序。felixge/node-mysql封装了Nodejs对MySQL的基本操作,100% MIT公共许可证。

项目地址:https://github.com/felixge/node-mysql

在项目中安装node-mysql,进入昨天建立好的myapp文件夹,运行:

npm install mysql

接下来进行测试,把官网的例子修改下,放到咱们的项目里面,修改routes/index.js,重启express

var express = require('express');
var router = express.Router();var mysql = require('mysql'); //调用MySQL模块
router.get('/', function(req, res) {
 res.render('index', {
 title: '孟星魂'
 });
 //创建一个connection
 var connection = mysql.createConnection({
 host: '127.0.0.1', //主机
 user: 'root', //MySQL认证用户名
 password: '111', //MySQL认证用户密码,没有测试没有密码时为空是否能登陆,不能的话设置下登陆密码
 port: '3306', //端口号
 database: 'nodesample'
 });
 //创建一个connection
 connection.connect(function(err) {
 if (err) {
 console.log('[query] - :' + err);
 return;
 }
 console.log('[connection connect] succeed!');
 });
 //执行SQL语句
 connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
 if (err) {
 console.log('[query] - :' + err);
 return;
 }
 console.log('The solution is: ', rows[0].solution);
 });
 //关闭connection
 connection.end(function(err) {
 if (err) {
 return;
 }
 console.log('[connection end] succeed!');
 });
});
module.exports = router;

 打开页面后,命令符显示效果如下:

 测试成功!!,下面建立测试数据库

CREATE DATABASE IF NOT EXISTS nodesample CHARACTER SET UTF8;
USE nodesample;
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `userinfo`;
CREATE TABLE `userinfo` (
 `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
 `UserName` varchar(64) NOT NULL COMMENT '用户名',
 `UserPass` varchar(64) NOT NULL COMMENT '用户密码',
 PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';

这段代码可以直接在navicat里面运行,点击工具,console,粘贴,回车就好了。

接下来往数据库中添加一条数据,修改routes/index.js,如下

var express = require('express');
var router = express.Router();
var mysql = require('mysql'); //调用MySQL模块
router.get('/', function(req, res) {
 res.render('index', {
 title: '孟星魂'
 });
 //创建一个connection
 var connection = mysql.createConnection({
 host: '127.0.0.1', //主机
 user: 'root', //MySQL认证用户名
 password: '111', //MySQL认证用户密码
 port: '3306', //端口号
 database: 'nodesample'
 });
 //创建一个connection
 connection.connect(function(err) {
 if (err) {
 console.log('[query] - :' + err);
 return;
 }
 console.log('[connection connect] succeed!');
 });
 //执行SQL语句
 var userAddSql = 'INSERT INTO userinfo(Id,UserName,UserPass) VALUES(0,?,?)';
 var userAddSql_Params = ['Wilson', 'abcd'];
 //增
 connection.query(userAddSql, userAddSql_Params, function(err, result) {
 if (err) {
 console.log('[INSERT ERROR] - ', err.message);
 return;
 }
 console.log('--------------------------INSERT----------------------------');
 //console.log('INSERT ID:',result.insertId); 
 console.log('INSERT ID:', result);
 console.log('-----------------------------------------------------------------\n\n');
 });
 //关闭connection
 connection.end(function(err) {
 if (err) {
 return;
 }
 console.log('[connection end] succeed!');
 });
});

module.exports = router;

重启express,刷新页面,命令符显示:

数据库显示:

好了,现在大家已经可以操作数据库了,基本的一些操作请参考http://www.cnblogs.com/zhongweiv/p/nodejs_mysql.html#mysql_mod,增删改查里面都有介绍。

 

后面应该是介绍大家上传的图片存储数据库的,但遇到了一些坑,才解决,最精彩的留在明天~,

主要是路由的问题,主页请求了模板,这个时候是无法在往前端发送数据的,所以会用到express的中间件,大家晚安~。

Javascript 相关文章推荐
JavaScript-世界上误解最深的语言分析
Aug 12 Javascript
js中的setInterval和setTimeout使用实例
May 09 Javascript
jquery右下角自动弹出可关闭的广告层
May 08 Javascript
AngularJS中的过滤器filter用法完全解析
Apr 22 Javascript
jQuery实现查找最近父节点的方法
Jun 23 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
Jan 13 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
js正则表达式验证密码强度【推荐】
Mar 03 Javascript
Node.js学习之内置模块fs用法示例
Jan 22 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
Jul 26 Javascript
JavaScript编写开发动态时钟
Jul 29 Javascript
Express的路由详解
Dec 10 #Javascript
在 Express 中使用模板引擎
Dec 10 #Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
Dec 10 #Javascript
基于jQuery实现复选框是否选中进行答题提示
Dec 10 #Javascript
日常收集整理的JavaScript常用函数方法
Dec 10 #Javascript
详解AngularJS中module模块的导入导出
Dec 10 #Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
Dec 10 #Javascript
You might like
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP随机生成唯一HASH值自定义函数
2015/04/20 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
Node.js connect ECONNREFUSED错误解决办法
2016/09/15 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
深入源码解析Python中的对象与类型
2015/12/11 Python
用Python实现随机森林算法的示例
2017/08/24 Python
python读取LMDB中图像的方法
2018/07/02 Python
基于python使用tibco ems代码实例
2019/12/20 Python
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
一些.net面试题
2014/10/06 面试题
小学生开学感言
2014/02/28 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
2014年药房工作总结
2014/11/22 职场文书
学校标语口号大全
2015/12/26 职场文书
远程教育培训心得体会
2016/01/09 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
Python学习之os包使用教程详解
2022/03/21 Python