浅析node连接数据库(express+mysql)


Posted in Javascript onNovember 30, 2015

操作是在ubuntu系统的下环境,简单记录一下过程。

首先用apt-get安装数据库,键入命令 sudo apt-get install mysql-server , 一路回车,然后在一个界面设置一下数据库root的密码就好了

在数据库里面我们需要创建一些东西。键入 mysql -uroot -p××××× 来进入sql控制台。

1.先创建数据集 create database databasename ;

2.use database databasename ;

3.建表(这里创建一个很简单的,只有自增id,用户名和密码)

create table user_info (                          
   id int(11) not null auto_increment,
   username varchar(30) not null,
   password varchar(30) not null,
   primary key ( id )
  )ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

4.插入一条数据 insert into user_info values(1,'mtjss2','123456') ;

下面是node的部分

创建一个文件夹,比如叫myapp,在里面npm init之后就会也node_modules的依赖文件夹

用 npm install --save 安装如下依赖

1.express

2.mysql

3.body-parser(用来解析post参数)

由于express好像没有自己的数据库封装,所以一般会新建models文件夹,然后写数据库的逻辑,如果只是想简单测试可以直接写在app.js中

这里举例在models下有一个user.js的逻辑封装类,暂时只有一个通过username获取用户信息的方法,其他可以以后加

var mysql = require('mysql') ;                                                                                      
  //connection config
  var connection = mysql.createConnection({
    host : 'localhost' ,
    user : 'root' ,
    password : '123456' ,
    database : 'my_box'
 });
 function User(user){
   this.username = user.username ;
   this.password = user.password ;
 }
 User.getUserbyUsername = function(username,callback){
   var selectSql = 'select * from user_info where username = ?' ;
   connection.query(selectSql,[username],function(err,res){
   ¦  if(err){
   ¦  ¦  console.log('getUserbyUsername err:' + err) ;
   ¦  ¦  return ;
   ¦  }
   ¦  console.log('Get name success') ;
   ¦  callback(err,res) ;
   }) ;
 } ;
 module.exports = User ;

再贴一下app.js暂时没写路由,就是对/和/reg方法的处理

var mysql = require('mysql') ;                     
  //connection config
  var connection = mysql.createConnection({
    host : 'localhost' ,
    user : 'root' ,
    password : '123456' ,
    database : 'my_box'
  });
 function User(user){
   this.username = user.username ;
   this.password = user.password ;
 }
 User.getUserbyUsername = function(username,callback){
   var selectSql = 'select * from user_info where username = ?' ;
   connection.query(selectSql,[username],function(err,res){
   ¦  if(err){
   ¦  ¦  console.log('getUserbyUsername err:' + err) ;
   ¦  ¦  return ;
   ¦  }
   ¦  console.log('Get name success') ;
   ¦  callback(err,res) ;
   }) ;
 } ;
 module.exports = User ;

index.html这个主页面在views文件夹下,没什么代码,不过也贴一下

<!DOCTYPE html>
<html>
<head>
  <title>my box</title>
</head>
<body>
  <form action="/reg" method="post">
    <input type="text" name="username"/>
    <input type="submit" value="submit"/>
  </form>
</body>
</html>

这样用 node app.js 启动以后在浏览器里访问 localhost:3000就行了,在input里输入数据库中的用户名可以的得到那条数据。

ps:使用 Node.js 的优势和劣势都有哪些?

Node.js优点:1、采用事件驱动、异步编程,为网络服务而设计。其实Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程。而且JavaScript也简单易学,很多前端设计人员可以很快上手做后端设计。2、Node.js非阻塞模式的IO处理给Node.js带来在相对低系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它IO资源的中间层服务。3、Node.js轻量高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。Node非常适合如下情况:在响应客户端之前,您预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。

Node.js缺点:1、可靠性低2、单进程,单线程,只支持单核CPU,不能充分的利用多核CPU服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。

Javascript 相关文章推荐
jQuery生成asp.net服务器控件的代码
Feb 04 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 Javascript
js控制的回到页面顶端goTop的代码实现
Mar 20 Javascript
页面使用密码保护代码
Apr 10 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
Aug 18 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
Oct 08 Javascript
JS获取当前网页大小以及屏幕分辨率等
Sep 05 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
Nov 19 Javascript
javascript中this关键字详解
Dec 12 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
Mar 01 Javascript
koa router 多文件引入的方法示例
May 22 Javascript
Node.js中出现未捕获异常的处理方法
Jun 29 Javascript
javascript编程异常处理实例小结
Nov 30 #Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 #Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
Nov 30 #Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
Nov 30 #Javascript
基于javascript如何传递特殊字符
Nov 30 #Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
Nov 30 #Javascript
全面解析Bootstrap排版使用方法(文字样式)
Nov 30 #Javascript
You might like
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
MySql中正则表达式的使用方法描述
2008/07/30 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
JS中的作用域链
2017/03/01 Javascript
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
Three.js基础学习教程
2017/11/16 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
Python正则简单实例分析
2017/03/21 Python
python with提前退出遇到的坑与解决方案
2018/01/05 Python
对python打乱数据集中X,y标签对的方法详解
2018/12/14 Python
python3调用windows dos命令的例子
2019/08/14 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
学校后勤岗位职责
2014/02/19 职场文书
物流管理毕业生自荐信范文
2014/03/15 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
环保标语大全
2014/06/12 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
计划生育目标责任书
2015/05/09 职场文书
遗失证明范文
2015/06/19 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书