浅析node连接数据库(express+mysql)

网友投稿 193 2023-07-25


浅析node连接数据库(express+mysql)

操作是在ubuntu系统的下环境,简单记录一下过程。

首先用apt-get安装数据库,键入命令 sudo apt-get install mysql-server , 一路回车,然后在一个界面设置一下数据库root的密码就好了

在数据库里面我们需要创建一些东西。键入 mysql -uroot -p 来进入sql控制台。

1.先创建数据集 create database databasename ;

2.use database databasename ;

3.建表(这里创建一个很简单的,只有自增id,用户名和密码)

create table user_info (

id int(11) not null auto_increment,

username varchar(30) not null,

password varchar(30) not null,

primary key ( id )

)ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

4.插入一条数据 insert into user_info values(1,'mtjss2','123456') ;

下面是node的部分

创建一个文件夹,比如叫myapp,在里面npm init之后就会也node_modules的依赖文件夹

用 npm install --save 安装如下依赖

1.express

2.mysql

3.body-parser(用来解析post参数)

由于express好像没有自己的数据库封装,所以一般会新建models文件夹,然后写数据库的逻辑,如果只是想简单测试可以直接写在app.js中

这里举例在models下有一个user.js的逻辑封装类,暂时只有一个通过username获取用户信息的方法,其他可以以后加

var mysql = require('mysql') ;

//connection config

var connection = mysql.createConnection({

host : 'localhost' ,

user : 'root' ,

password : '123456' ,

database : 'my_box'

});

function User(user){

this.username = user.username ;

this.password = user.password ;

}

User.getUserbyUsername = function(username,callback){

var selectSql = 'select * from user_info where username = ?' ;

connection.query(selectSql,[username],function(err,res){

¦ if(err){

¦ ¦ console.log('getUserbyUsername err:' + err) ;

¦ ¦ return ;

¦ }

¦ console.log('Get name success') ;

¦ callback(err,res) ;

}) ;

} ;

module.exports = User ;

再贴一下app.js暂时没写路由,就是对/和/reg方法的处理

var mysql = require('mysql') ;

//connection config

var connection = mysql.createConnection({

host : 'localhost' ,

user : 'root' ,

password : '123456' ,

database : 'my_box'

});

function User(user){

this.username = user.username ;

this.password = user.password ;

}

User.getUserbyUsername = function(username,callback){

var selectSql = 'select * from user_info where userhttp://name = ?' ;

connection.query(selectSql,[username],function(err,res){

¦ if(err){

¦ ¦ console.log('getUserbyUsername err:' + err) ;

¦ ¦ return ;

¦ }

¦ console.log('Get name success') ;

¦ callback(err,res) ;

}) ;

} ;

module.exports = User ;

index.html这个主页面在views文件夹下,没什么代码,不过也贴一下

这样用 node app.js 启动以后在浏览器里访问 localhost:3000就行了,在input里输入数据库中的用户名可以的得到那条数据。

ps:使用 Node.js 的优势和劣势都有哪些?

Node.js优点:1、采用事件驱动、异步编程,为网络服务而设计。其实javascript的匿名函数和闭包特性非常适合事件驱动、异步编程。而且javaScript也简单易学,很多前端设计人员可以很快上手做后端设计。2、Node.js非阻塞模式的IO处理给Node.js带来在相对低系统资源耗用下的高性能与出众的负载能力,非常适合用作依赖其它IO资源的中间层服务。3、Node.js轻量高效,可以认为是数据密集型分布式部署环境下的实时应用系统的完美解决方案。Node非常适合如下情况:在响应客户端之前,您预计可能有很高的流量,但所需的服务器端逻辑和处理不一定很多。

Node.js缺点:1、可靠性低2、单进程,单线程,只支持单核CPU,不能充分的利用多核CPU服务器。一旦这个进程崩掉,那么整个web服务就崩掉了。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈JAVASE单例设计模式
下一篇:Bootstrap每天必学之媒体对象
相关文章

 发表评论

暂时没有评论,来抢沙发吧~