node.js数据库操作
node 中使用mysql
const http = require('http');
const mysql = require('mysql');
const url = require('url');
const fs = require('fs'); //1.连接到数据库
let db = mysql.createConnection({
host:'localhost',
user: 'root',
password:'',
database:''
}); //连接池【解决并发问题】
/*let db = mysql.createPool({
connerctionLimit: 10,//默认就是10
host:'localhost',
user: 'root',
password:'',
database:''
});*/ //查询
db.query('SELECT * FORM user_Table',(err,data)=>{
if(err){
console.log('错了');
}else{
console.log(data);
}
}); //2.配合http
http.createServer((req,res)=>{
const {pathname,query} = url.parse(req.url,true); if(pathname === '/reg'){
//参数是否正确
let {username,password} = query;
if(!username || !password) {
res.write('用户和密码不能为空');
res.end();
}else if(username.length>32){
res.write('用户名不能大于32位');
res.end();
}else if(password.length>32){
res.write('密码不能大于32位');
res.end();
}else{
db.query(`SELECT ID FROM user_table WHERE username='${username}'`,(err,data)=>{
if(err){
res.write('数据库有错');
res.end();
}else if(data.length>0){
res.write('用户名已存在');
res.end();
}else{
db.query(`SELECT INFO user_table (username,password) VALUES('${username}','${password}')`,err=>{
if(err){
res.write('数据库有错');
res.end();
}else {
res.write('注册成功');
res.end();
}
})
}
})
} //检查用户名是否存在 }else if(pathname === '/login'){ }else{
fs.readFile('www'+pathname,(err,buffer)=>{
if(err){
res.writeHeader(404);
res.write('no found');
}else{
res.write(buffer);
}
res.end();
})
}
}) 3.异步模块(co-mysql)
const co = require('co-mysql');
let conn = mysql.createPool({
host:'localhost',
user: 'root',
password:'',
database:''
}); let db = co(conn); http.createServer(async (req,res)=>{
const {pathname,query} = url.parse(req.url,true); if(pathname === '/reg'){
//参数是否正确
let {username,password} = query;
if(!username || !password) {
res.write('用户和密码不能为空');
res.end();
}else if(username.length>32){
res.write('用户名不能大于32位');
res.end();
}else if(password.length>32){
res.write('密码不能大于32位');
res.end();
}else{
try{
let data = await db.query(`SELECT ID FROM user_table WHERE username='${username}'`);
if(data.length>0){
res.write('用户名已存在');
}else{
await db.query(`SELECT INFO user_table (username,password) VALUES('${username}','${password}')`);
res.write('注册成功');
}
}catch(err){
res.write('数据库有错');
}
res.end();
} //检查用户名是否存在 }else if(pathname === '/login'){ }else{
fs.readFile('www'+pathname,(err,buffer)=>{
if(err){
res.writeHeader(404);
res.write('no found');
}else{
res.write(buffer);
}
res.end();
})
}
})
node.js数据库操作的更多相关文章
- node.js高效操作mongodb
node.js高效操作mongodb Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为Jav ...
- Node.js 数据库实时监控库 node-dbmon
node-dbmon 是一个 Node.js 数据库实时监控库,如果你希望在数据库表数据更改后,或者是文件修改后能更新 GUI,那么这个库正好适合你. https://github.com/strap ...
- Node.js之操作文件系统(一)
Node.js之操作文件系统(一) 1. 同步方法与异步方法 在Node.js中,使用fs模块来实现所有有关文件及目录的创建.写入及删除操作.,在fs模块中,所有对文件及目录的操作都可以使用同步与异步 ...
- Node.js之操作文件系统(二)
Node.js之操作文件系统(二) 1.创建与读取目录 1.1 创建目录 在fs模块中,可以使用mkdir方法创建目录,该方法的使用方法如下: fs.mkdir(path,[mode],callbca ...
- 在Node.js中操作文件系统(一)
在Node.js中操作文件系统 在Node.js中,使用fs模块来实现所有有关文件及目录的创建,写入及删除操作.在fs模块中,所有对文件及目录的操作都可以使用同步与异步这两种方法.比如在执行读文件操作 ...
- Node.js文件操作二
前面的博客 Node.js文件操作一中主要是对文件的读写操作,其实还有文件这块还有一些其他操作. 一.验证文件path是否正确(系统是如下定义的) fs.exists = function(path, ...
- mongoose - 让node.js高效操作mongodb
Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. ...
- MONGOOSE – 让NODE.JS高效操作MONGODB(转载)
Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为JavaScript对象以供你在应用中使用. ...
- Node.js简单操作
在node中是不支持BOM和DOM操作的,所以像alert().document.write...都是不支持的,可以是console.log() 首先我们来输出"hello world&qu ...
随机推荐
- Salt States概览
作者言 我也只是SaltStack的初学者,如果文中有错误的地方,请不吝赐教. 在学习的过程,我也做了不少实验,犯了不少错,积累了一些经验,对SaltStack的运行也有一定了解,如果有什么问题,或是 ...
- 在 Windows 服务中托管 ASP.NET Core
众所周知,ASP.NET Core采用了和传统ASP.NET不同的托管和HTTP处理方式,即把服务器和托管环境完全解耦.ASP.NET Core内置了两个HTTP服务器实现,一个是基于libuv实现的 ...
- 【KakaJSON手册】08_其他用法
除了完成JSON和Model的转换之外,KakaJSON内部还有很多实用的功能,有些也开放为public接口了 遍历属性 struct Cat { var age: Int = 0 let name: ...
- Centos7安装部署Rabbitmq教程
依赖关系: 版本依赖一定要提前看清楚. RabbitMQ相关版本依赖关系查看 https://www.rabbitmq.com/which-erlang.html 可以看到要求版本Erlang21.3 ...
- Gerrit - 安装配置GitWeb
1 - GitWeb简介 GitWeb是一个支持在Web页面上查看代码以及提交信息的工具. 安装GitWeb工具并且集成到Gerrit中,就可以直接在Gerrit的项目列表中查看项目的代码信息. 2 ...
- Win10 专业版 Hyper-V 主机计算服务无法启动
Windows 10升级1809版本后,发现Hyper-V不能用了,管理器里是一片空白,看服务Hyper-V 主机计算服务没有启动,手动启动的话失败,报错,代码1053. 自己尝试修复,也百度了很久, ...
- Linux系统下的SSH 使用总结
对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验而言,做一些总结记录来下. -bash: ...
- lvm的一些特殊命令
pvscan --cache # 将lvm信息同步到其他节点 ......未完待续
- python 的技巧
pi = 0 n = 100 for k in range(n): pi+=1/pow(16,k)*(\ #一行不够写或不易读时用\,则多行与一行一样 4/(8*k+1)-2/(8*k+4)-\ 1/ ...
- windows和linux环境下java调用C++代码-JNI技术
最近部门做安卓移动开发的需要调C++的代码,困难重重,最后任务交给了我,查找相关资料,没有一个教程能把不同环境(windows,linux)下怎么调用说明白的,自己在实现的过程中踩了几个坑,在这里总结 ...