Node.js基础学习三之登录功能
本篇介绍Node.js访问数据库并返回数据给客户端
需求基于Node.js学习(二)
数据库请下载:user.sql
1、创建user 实体类(model-user.js)
function User(id,userName,userPsw){
this.id = id;
this.userName = userName;
this.userPsw = userPsw;
}
// getter
User.prototype.getUserName = function () {
return this.userName;
};
User.prototype.getUserPsw = function () {
return this.userPsw;
};
module.exports = User; // 模块化
2、创建node-sql.js,对user表进行CURD
var mySql = require('mysql');
// 数据库属性
var connection = mySql.createConnection({
host:"localhost", //主机
user:"",// 字符串内写数据库用户名
password:"", //数据库连接密码
database:"", // 数据库名
port:3306 // 端口
});
// 连接
connection.connect();
// 数据库执行语句
var sql;
//
function CURD(){}
//增
CURD.prototype.add = function(obj){
};
// 删
CURD.prototype.del = function(id){
};
// 改
CURD.prototype.update = function(obj){
};
// 查
CURD.prototype.check = function(obj,callback){
sql = "SELECT COUNT(*) FROM `user` AS u where u.userName = ? AND u.userPsw = ?";
console.log(obj.getUserName() + "====" + obj.getUserPsw());
var addParams = [obj.getUserName(),obj.getUserPsw()];
if(obj){
connection.query(sql,addParams, function (error, result) {
if(error){
console.log("[SELECT ERROR] - ",error.message);
return;
}
console.log("----------------------------SELECT----------------------------");
console.log(result);
console.log(result[0]);
console.log(result[0]["COUNT(*)"]);
console.log("--------------------------------------------------------------\n\n");
callback(result[0]["COUNT(*)"]);
});
}else{
// 返回所有对象
}
};
module.exports = CURD;
这里提下var mySql = require('mysql'); 加载mysql 模块,安装的node.js 中没有这个模块,需要手动下载,推荐一篇不错的文章,不过请看完再装
3、node-post.js 监听端口
var http = require('http');
var qs = require('querystring');
var url = require('url');
// 获取user模块
var User = require('./model-user');
// 获取CURD模块
var CURD = require('./node-sql');
// 构造
var curd = new CURD();
http.createServer(function (req, res) {
var parms = url.parse(req.url,true);
var userName = parms.query.userName;
var userPsw = parms.query.userPsw;
console.log(userName + "<---||--->" + userPsw);
//构造
var user = new User(null,userName,userPsw);
curd.check(user, function (result) {
console.log("回调数据是:" + result);
var resData = {
msg:result
};
res.writeHead(200,{'Content-type':'text/plain;charset=utf-8'});
res.end('callback('+JSON.stringify(resData)+')');
});
}).listen(8082);
这里注意check()使用了回调 callback,在connection.query()中发起回调,Node.js 大部分方法都是异步回调处理.
前端界面和之前的一样,这里就截图看看吧


如有不足之处请指出,谢谢
Node.js基础学习三之登录功能的更多相关文章
- Node.js基础学习四之注册功能
前言:在Node.js学习(二)和(三)中介绍了如何在Node.js 中获取登录的用户名和密码与数据库进行验证并返回数据给客户端 需求:实现注册功能 为了区分登录和注册是两个不同的请求,在端口后面加上 ...
- Node.js基础学习二之POST请求
本篇介绍下 Node.js post 请求 需求: 用户登录,前端界面输入用户名和密码,点击登录请求后台验证,根据后台反馈的信息做出响应 前端: (1)使用form表单 (2)使用ajax异步请求 服 ...
- Node.js基础学习一之Get请求
本人从事的是前端开发,这段时间公司开发项目比较少所以就想着学点东西,然后就想到了Node.js ,跟着菜鸟教程学了点,不过我觉得最好的学习方法是带着需求来学习. 其实和服务端打交道无非就是能有一个可以 ...
- node.js 基础学习笔记3 -http
http模块,其中封装了一个高效的HTTP服务器和一个建议的HTTP客户端 http.server是一个基于事件的HTTP服务器 http.request则是一个HTTP客户端工具,用户向服务器发送请 ...
- node.js 基础学习笔记2
Module和Package是Node.js最重要的支柱. Node.j 提供require函数来调用其他模块,而且模块都是基于文件.模块和包区别是透明的,因此常常不作区分. 1.模块和文件一一对应. ...
- node.js 基础学习笔记1
1. node -v 查看版本 node -e --js代码 node --进入编辑模式 Ctrl+C 退出编译模式 var http=require('http') http.createServe ...
- node.js 基础学习 express安装使用
安装好nodeJs,我们需要使用命令行中安装express. 我这里默认将Node.js安装在C:\Program Files\nodCejs\盘中. 在保持联网的状态下,依次输入如下命令. npm ...
- node.js 基础学习
node.js 是一个 javaScript 运行环境,可以让 js 运行在服务端. 在 nodejs 环境下,可以运行 javascript 基本语法,可以在nodejs 中执行一些无法在浏览器端执 ...
- node.js 基础学习笔记3 -express
1.工作原理 当通过app.js建立的服务器时,会看到一个简单的页面.返回页面时,浏览器会向服务器发送请求.app会解析请求的路径,调用相应的逻辑,调用对应的视图模板,传递对象数值,最终生成HTML页 ...
随机推荐
- python中matplotlib画图
参考 https://blog.csdn.net/u010358304/article/details/78906768 https://www.cnblogs.com/onemorepoint/p/ ...
- Overview of Azure Storage
Azure Storage types Blob storage. Containers for data blobs. The three types of blobs are: Page blob ...
- Ultimate Facebook Messenger for Business Guide (Feb 2019)
Ultimate Facebook Messenger for Business Guide (Updated: Feb 2019) By Iaroslav Kudritskiy November 2 ...
- delphi 中实现当期日期 减去 若干小时的方法
假定当期日期为:2011-08-01 15:00:00 now - 1 :代表前一天的日期 返回值:2011-07-31 15:00:00 now - 1/3 :代表8小时前 ...
- 使用tortoisegit工具git地址中带号码密码的拉取,以及使用这种方式后中途重置密码报git remote: HTTP Basic: Access denied 错误解决办法
1. 在拉取git项目时可以在地址中直接指定号码密码如下就可以直接拉取下来 https://username:password@github.com 需要注意,因为在解析地址时是以@符号作为地址信 ...
- ADB——管理应用
ADB应用管理 主要操作有查看应用列表.安装应用.卸载应用.清楚应用数据与缓存.查看前台Activity.查看应用信息及安装路径等等 查看应用列表 查看应用列表的基本命令格式是 adb shell p ...
- linux架构师之路!
目录 1.shell编程总结 2.python编程总结 3.网络基础总结 4.存储的基本知识 5.linux常用 架构学习目录 1.网站架构 2.架构师技术图谱 3.python之路 4.IBM技术主 ...
- ThinkPHP安全规范指引
流年 发布于 ThinkPHP官方博客: https://blog.thinkphp.cn/789333 本文主要和大家探讨一下ThinkPHP的安全注意事项,可以作为ThinkPHP建议的安全规范实 ...
- 一小时上手Java 8新特性
一小时上手Java 8新特性 本文摘译自 https://www.journaldev.com/2389/java-8-features-with-examples,并做了适当增补. Iterable ...
- c++简单程序设计 实验一
实验内容: 2-28 实现一个简单的菜单程序,运行时显示“Menu:A(dd) D(elete) S(ort) Q(uit),Selete one:”提示用户输入.A表示增加,D表示删除, S表示排序 ...