nodejs怎么和数据库连接?

更新日期: 2019-12-16阅读: 2k标签: 数据库

通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,下面本篇文章就来给大家介绍下如何通过NodeJS来操作 MySQL 数据库,希望对大家有所帮助。


nodejs连接MySQL数据库的步骤:

安装 node-mysql:

$ npm install mysql

我们需要让NodeJS支持MySQL,则需要将MySQL模块添加到系统支持库。

连接数据库:

引入并配置修改数据库用户名密码及数据库名

var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '123456',
    database: 'test'
});

connection.connect();

connection.query('SELECT 1 + 1 AS solution',
function(error, results, fields) {
    if (error) throw error;
    console.log('The solution is: ', results[0].solution);
});

数据库连接参数:

  • host 主机地址 (默认:localhost)

  • user 用户名

  • password 密码

  • port 端口号 (默认:3306)

  • database 数据库名

  • charset 连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写)

  • localAddress 此IP用于TCP连接(可选)

  • socketPath 连接到unix域路径,当使用 host 和 port 时会被忽略

  • timezone 时区(默认:'local')

  • connectTimeout 连接超时(默认:不限制;单位:毫秒)

  • stringifyObjects 是否序列化对象

  • typeCast 是否将列值转化为本地JavaScript类型值 (默认:true)

  • queryFormat 自定义query语句格式化方法

  • supportBigNumbers 数据库支持bigint或decimal类型列时,需要设此option为true (默认:false)

  • bigNumberStrings supportBigNumbers和bigNumberStrings启用 强制bigint或decimal列以JavaScript字符串类型返回(默认:false)

  • dateStrings 强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScript Date类型(默认:false)

  • debug 开启调试(默认:false)

  • multipleStatements 是否许一个query中有多个MySQL语句 (默认:false)

  • flags 用于修改连接标志

  • ssl 使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件

注:如果本地数据库连接失败,报错10061,说明本地MySQL服务未启动,在我的电脑右键服务下启动mysql

抛出源码,蹬蹬蹬~~~~

var Mysqlconnect = require('mysql');
var sql = Mysqlconnect.createConnection({
    host:'localhost',
    user:'root',
    password:'xxxx',
    database:'trip'
  });
  sql.connect();
/* GET users listing. */
router.get('/', function(req, res, next) {
        sql.query("select * from tour",[],function(err,data){
            console.log(data);
            res.send(data);
        });
    
});
// 登录
router.post('/login', function(req, res, next) {
      console.log(req.body.username);
        sql.query("select * from user_app where username = ? and password = ?",
                            [req.body.username,req.body.password],function(err,data){
            console.log(data);
            if(err){
                console.log(err);
                return;
            }
            res.send(data);
        });
    
});
// 注册
router.post('/register', function(req, res, next) {
      console.log(req.body.username);
        sql.query("insert into user_app (username,password,phone) value (?,?,?)",
                      [req.body.username,req.body.password,req.body.phone],function(err,data){
            console.log(data);
            if(err){
                console.log(err);
                return;
            }
            res.json({res_code:0});
        });
    
});

链接: https://www.fly63.com/article/detial/8231

数据库的选择:数据库种类那么多,该如何选择?

技术真的是日新月异,Web 网站已经脱离之前的静态网站的体系,转而使用动态语言搭建的动态网站。这也衍生出一个问题:该如何存储数据了?数据库就应运而生,它的作用是提供存储数据的容器。方便 web 网站进行存储、查询、更新等。

数据库的常用sql操作

数据库操作,不管是服务端、前端、移动端,都或多或少的会涉及到数据的存储、查询、修改。所以作为一名开发者,数据库操作也是开发必备的一项技能。本文是对数据库中经常用到的一些写法与及函数的归纳总结

B树和哈希索引的比较

了解B树和哈希数据结构有助于预测查询在这些使用不同索引数据结构的存储引擎上的执行情况,特别是对于MEMORY存储引擎,它是允许您选择B树或哈希作为索引的存储引擎。

使用 TypeScript 访问 MySQL 数据库

TypeScript 已经成为一个强大的 Web 应用程序开发环境,在与标准 JavaScript 保持一致的同时,提供了显著的改进。在本文中,我们将深入探讨使用 TypeScript 相关的细节

MyISAM和InnoDB的比较

MyISAM:不支持事务,而且也不支持外键,但是每次查询都是原子的,支持表级锁,即每次操作是对整个表加锁;InnoDb:支持ACID的事务,支持事务的四种隔离级别;

MongoDB的特性、使用原理

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 具有高性能、易部署、易使用,存储数据非常方便等特点

传统数据库不适合现代企业架构了?

它还是我们如今看到的更广泛的技术趋势背后的统一思想,这些技术包括机器学习、物联网、无处不在的 SaaS 以及云计算。这些趋势都在用不同的方法使软件变得更丰富和功能强大,并在企业间扩大其影响范围

数据库自增ID用完了会怎样?

对DBA来说这应该是送分题吧。而我是突如其来的想法想测试下的。正常来说程序员是不会关心自增ID用完的情况的。以 Mysql 为例,它支持的最大的整型是unsigned bigint

node如何连接数据库?

node连接数据库的方法:使用命令npm install mysql --save安装mysql的软件包,在项目文档中使用client.connect()即可连接数据库。下载MySQL :MySQL Downloads,并进行安装。安装完,会引导你对数据库进行配置,设置root密码以及创建普通用户以及密码

数据库设计规范化的 5 个要求

通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!