关于我 . 文档 . 流水 . 服务

NodeJs学习记录(一):连接mysql数据库并查询数据库返回json串到页面

NodeJs

学习php+mysql半吊子后,想要使用nodejs来和php相互印证一下,以便加深对后端的理解,所以就有了下方的代码,边看边查边写。


前期

开发环境:LNMP / MAMP

创建数据库:nodejstest

创建表/字段:websites(a,b,c,d,e)

重启mysql(此处遇到低级错误,因为创建数据库后没有重启mysql,所以在连接数据返回数据的过程中报错,耽误了点时间,大写囧...)


准备

创建项目                                $ npm init

在选择启动入口文件时,写的app.js,也可以创建后在package.json中修改入口文件 index.js 为 app.js

选择安装框架Express            $ cnpm install express --save

安装mysql依赖                       $ cnpm install mysql --save




  var express = require('express');
  var mysql = require('mysql');
  var app=express();

  //创建一个数据库连接
  var db_con=mysql.createConnection({
        host:'localhost',
        post:'',
        user:'root',
        password:'root',
        database:'nodejstest'
  })


  var websitesList='';
  //连接数据库
  db_con.connect();
  //取出数据的SQL语句
  var sql = 'SELECT * FROM websites';
  //查询数据方法
  db_con.query(sql,(err,result)=>{
        if(err){
            console.log('数据查询失败:' + err);
            return;
        }
        websitesList = result;
        // console.log(result);
  })

  //数据库连接结束
  db_con.end();

  //创建首页根
  app.get('/',(req,res)=>{
      res.send(JSON.stringify(websitesList));
  })

  //监听3000端口创建服务器
  app.listen(3000,(req,res)=>{
        console.log('App running...')
  })


写完之后进入终端命令启动:$ node app.js


可以看到数据以String字符串的形式显示在页面上,因为数组不能直接显示在页面上,所以在res.send() 时,将json串转换成了字符串。