美文网首页我爱编程
Node连接数据库

Node连接数据库

作者: Gukson666 | 来源:发表于2018-04-09 14:28 被阅读0次

MongoDB

cnpm install mongodb
Mongodb: 命令行cd 进入 D:\Program Files\MongoDB\Server\3.4\bin 目录下(我安装所在目录)
执行服务端的执行文件 mongod.exe --dbpath D:\mongodb\db (注意要先在D盘底下先创建好这个文件夹)
D:\mongodb\db 是存储数据的文件目录
此时已成功开启运行数据库(实例看mongodbTest)

var MongoClient = require('mongodb').MongoClient;
var DB_CONN_STR = 'mongodb://localhost:27017/me'; # 数据库为 me

1.使用mongo命令将数据库删除: 即另开一个cmd 输入 mongo 命令进入
show dbs; 查看所有数据库
use db_name;
db.dropDatabase()
2.导入(指定文件夹)数据:
linux命令:mongorestore -d db_name 文件夹目录
windows命令:mongorestore.exe -d db_name 文件夹目录
3.导出备份数据:
MongoDB提供了备份和恢复的功能,分别是MongoDB下载目录下的mongodump.exe 和 mongorestore.exe 文件.
例如:mongodump -h dbhost -d dbname -o dbdirectory
dbhost 填 127.0.0.1:27017 dbname填要备份的数据库名 dbdirectory要放到哪里

部署到服务器的话,后台运行 先 cd /usr/local/mongodb
执行 ./bin/mongod --dbpath /root/mongodb --logpath /root/mongodb/mongodb.log --fork --port 27017
通过 ps aux | grep mongodb 查看进程
补充一下mongo后台运行代码
mongod --dbpath /root/mongodb --logpath /root/mongodb/mongodb.log --logappend &

mongoose.connect(db)
    .then(() => console.log("MongoDB Connected"))
    .catch(err => console.log(err));

db是单独把数据库的Url等配置信息独立出来的文件中的导出的对象。

总结Schema、Model、Entity的关系:
Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力。
Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对。
Entity : 由Model创建的实体,他的操作也会影响数据库。

Schema、Model、Entity的关系是:Schema生成Model,Model创造Entity,Model和Entity都可对数据库操作造成影响,但Model比Entity更具操作性。

Mysql

cnpm install mysql
mysql:先打开压缩包中的 start.bat 开启数据库服务(压缩包版)
用navicat连接 用户名为 localhost 密码 空 "" 具体看MysqlTest
创建连接:

// 数据库连接池
var pool = mysql.createPool({
    host:config.database.HOST, 
    user:config.database.USER,
    password:config.database.PASSWORD,
    database:config.database.DATABASE
        // config 对象是独立出来数据库配置信息所导出的对象
});

// 执行sql语句的统一方法
var query = (sql,val) => {
    return new Promise((resolve,reject)=>{
        pool.getConnection((err,connection)=>{
            if (err){
                return resolve(err)
            } else{
                connection.query(sql,val,(err,rows)=>{
                    if (err) {
                        reject(err)
                    }else{
                        resolve(rows)
                    }
                    connection.release()
                })
            }
        })
    })
}

// 初始化建表执行方法
let createTable = ( sql ) => {
  return query( sql, [] )
}

createTable(users)
createTable(comments)

相关文章

网友评论

    本文标题:Node连接数据库

    本文链接:https://www.haomeiwen.com/subject/fiunpxtx.html