zoukankan      html  css  js  c++  java
  • noodjs(koa)+mysql搭建服务器环境及基本的增删改查操作

    手动创建项目文件

    1.在指定目录下,右击创建项目文件夹。
    2.使用git init 命令把此文件下内容变成可由git进行版本控制的文件。
    3.执行“npm init -y”命令,创建package.json文件,初始化
    4.执行“npm init koa”命令,安装koa,此时项目路径下会生成一个package-lock.json文件。

    创建server

    1.创建一个app.js文件,然后将以下代码复制进去

    const Koa = require('koa');
    const app = new Koa();
    const main = ctx => {
        ctx.response.body = 'Hello World';
    }
    app.use(main);
    app.listen(3000);
    

    然后执行以下命令

    node app.js
    

    最后在浏览器打开http://127.0.0.1:3000/这个连接,如果看到熟悉的“Hello World”就说明你的server已经启动成功啦。

    连接数据库

    这里我是用的是mysql,mac上mysql的安装可以参考我的这篇mac上n次安装与卸载mysql
    先安装nodejs的mysql包

    npm install mysql
    

    创建连接:

    const Koa = require('koa');
    var mysql = require('mysql'); //导入模块
    const app = new Koa();
    var connection = mysql.createConnection({
       host:'http://localhost',
       user:'root',
       port: '3306',
       password:'',
       database:'test'
    });
    connection.connect();  //创建连接
    

    操作数据库

    附上自己创建表的sql语句

    create table  record( 
    id INT NOT NULL   AUTO_INCREMENT,
    userId INT NOT NULL,
    text TEXT,
    foreign key(userId) references user(id),
    PRIMARY KEY(id)
    );
    
    create table record_img( 
    id  INT NOT NULL   AUTO_INCREMENT,
    recordId INT NOT NULL,
    imgSrc varchar(255) NOT NULL,
    foreign key(recordId) references record(id),
    PRIMARY KEY(id)
    );
    
    create table user( 
    id INT NOT NULL   AUTO_INCREMENT,
    nickName varchar(200)  NOT NULL,
    gender varchar(200),
    city varchar(200),
    province  varchar(200),
    country  varchar(200),
    birthday DATE,
    PRIMARY KEY(id)
    );
    

    对数据库的基本操作

    • 查询
    var sql ='select * from user';
    connection.query(sql,function(err,result){
        if(err){
            console.log('[SELECT ERROR] - ',err.message);
            return;
        }
        console.log('--------------------------SELECT----------------------------');
        console.log(result);
        console.log('------------------------------------------------------------
    
    ');
    
    });
    
    • 修改
    connection.connect();  //创建连接
    var sql ='update user set nickName = ? where id = ?';
    var sqlpar=['julieCopy',1];
    
    connection.query(sql,sqlpar,function(err,result){
        if(err){
            console.log('[UPDATE ERROR] - ',err.message);
            return;
        }
        console.log('--------------------------SELECT----------------------------');
        console.log('UPDATE affectedRows',result.affectedRows);
        console.log('------------------------------------------------------------
    
    ');
    
    });
    connection.end();
    
    • 增加
    connection.connect();  //创建连接
    var addSql ='insert into  user (nickName) values(?)';
    var addPar= ['jessicacopy'];
    connection.query(addSql,addPar,function(err,result){
        if(err){
            console.log('[insert ERROR] - ',err.message);
            return;
        }
        console.log('--------------------------SELECT----------------------------');
        console.log('UPDATE affectedRows',result.affectedRows);
        console.log('------------------------------------------------------------
    
    ');
    
    });
    connection.end();
    
    
    • 删除
    connection.connect();  //创建连接
    var delSql ='delete from  user where id = 2';
    
    connection.query(delSql,function(err,result){
       if(err){
           console.log('[UPDATE ERROR] - ',err.message);
           return;
       }
       console.log('--------------------------SELECT----------------------------');
       console.log('UPDATE affectedRows',result.affectedRows);
       console.log('------------------------------------------------------------
    
    ');
    
    });
    connection.end();
    
  • 相关阅读:
    创建struct类型的数组
    simulate windows touch input
    Could not load file using Ranorex runtime : General Questions
    UIAutomator 编译
    w3cmark前端精彩博文周报 10.27-11.2
    w3cmark前端精彩博文周报 10.20-10.27
    w3cmark前端精彩博文周报 10.13-10.19
    sublime自定义snippet代码片段
    Iconfont在移动端遇到问题的探讨
    一个小效果引出的兼容性探讨
  • 原文地址:https://www.cnblogs.com/JessicaIsEvolving/p/9341195.html
Copyright © 2011-2022 走看看