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获取当前日期时间及其它操作函数
Jan 11 Javascript
通过js来制作复选框的全选和不选效果
May 22 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
JS在onclientclick里如何控制onclick的执行
May 30 Javascript
浅谈javascript中的事件冒泡和事件捕获
Dec 28 Javascript
JS在浏览器中解析Base64编码图像
Feb 09 Javascript
Ext JS 实现建议词模糊动态搜索功能
May 13 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
Dec 10 Javascript
js对象数组和对象的使用实例详解
Aug 27 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
Feb 10 Javascript
vue中使用vue-pdf的方法详解
Sep 05 Javascript
使用TS来编写express服务器的方法步骤
Oct 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
php+oracle 分页类
2006/10/09 PHP
PHP的开合式多级菜单程序
2006/10/09 PHP
PHP分页显示制作详细讲解
2008/11/19 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
php 可变函数使用小结
2018/06/12 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
jquery 删除字符串最后一个字符的方法解析
2014/02/11 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
初探nodeJS
2017/01/24 NodeJs
AngularJS实现注册表单验证功能
2017/10/16 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
Python ZipFile模块详解
2013/11/01 Python
用python代码做configure文件
2014/07/20 Python
python使用marshal模块序列化实例
2014/09/25 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
selenium自动化测试入门实战
2020/12/21 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
客房主管岗位职责
2013/12/09 职场文书
少年闰土教学反思
2014/02/22 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
婚礼父母答谢词
2015/01/04 职场文书