Node中连接数据库

一笑奈何 提交于 2020-02-11 06:43:05

首先把mongodb数据库开启

在Node中操作mongodb数据库

通过第三方插件连接 mongoose

安装 : npm i moongoose
使用:

const mongoose = require('mongoose');
//连接数据库,数据库名称为test 没有则会被创建
mongoose.connect("mongodb://localhost/test", {useNewUrlParser: true, useUnifiedTopology: true});
//创建表的模型
const Cat = mongoose.model('表名', {name: String});
//实例化一个Cat
const kitty = new Cat({name: '陈林'});
//持久化保存kitty实例(写入数据库)
kitty.save().then(() => console.log('写入成功'));

说明

  1. Cat相当于模型,kitty相当于实例
  2. Mongoose 会自动将大写开头的表名加复数,即数据库中是小写加复数形式
  3. 表名后面便是数据库模型
实例
const mongoose = require('mongoose')
//连接数据库
mongoose.connect('mongodb://localhost/myTest', {useNewUrlParser: true, useUnifiedTopology: true})

//将文档结构发布为模型
const User = mongoose.model('User', {
        username: {
            type: String,
            required: true
        },
        password: {
            type: String,
            required: true
        },
        email: {
            type: String
        }
    }
)

let firstData = new User({
    username: '陈强',
    password: '1996111',
    email: '1347793161@qq.com'
})

firstData.save().then(() => {
    console.log('插入成功')
})

在Node中操作mySQL数据库

MySQL基本操作

  1. 创建数据库: create databases 数据库名;
  2. 显示数据库 show databases;
  3. 使用数据库: use 数据库名;
  4. 创建表:
create table 表名(
    id int primary key,
    username varchar(20) not null,
    password varchar(20) not null);
  1. 显示表结构 desc 表名;

使用mysql插件连接mysql

安装: npm install mysql -S
连接数据库:

const mysql = require('mysql')
	//创建连接
	const connection = mysql.createConnection({
		host:'localhost',
		user:'root',
		password:'密码',
		database:'数据库名'
	})
	//连接数据库
	connection.connect();
	//执行sql语句
	connection.query('sql语句',(error,results,fields)=>{
		if(error)
			throw error;
		console.log('results:',results[0])
	})
	//关闭连接
	connection.end()

所有的sql语句都在 connection.query()方法里写
连接数据库遇到问题:Client does not support authentication protocol requested by server; consider upgrading MySQL client;报错原因是权限问题在数据库中依次输入以下两句:
alter user 'root'@'localhost' identified with mysql_native_password by 数据库密码';
flush privileges;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!