zoukankan      html  css  js  c++  java
  • node连接数据库(express+mysql)

    http://www.cnblogs.com/maskmtj/p/5006651.html

    操作是在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里输入数据库中的用户名可以的得到那条数据。

  • 相关阅读:
    ECMAScript 引用类型Object 对象
    jQuery Form Plugin
    在 PHP5 中使用 DOM 控制 XML
    JavaScript encodeURI()和encodeURIComponent() 函数
    程序员进阶的建议:多看、多写、多交流
    jQuery 取 css zindex 值在各种浏览器中的返回值
    XPath 语法教程(Tutorial_2)
    使用 strpos 需要注意 === 运算符
    关于代码开发规范和原则
    PHP 编写大型网站问题集
  • 原文地址:https://www.cnblogs.com/zaifeng0108/p/7226387.html
Copyright © 2011-2022 走看看