Node.js学习

Posted 임문이

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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学习的主要内容,如果未能解决你的问题,请参考以下文章

vscode代码片段建议bug

从Node.js Stream写入多个文件

node.js的学习

「Node学习笔记」Node.js的模块实现及编译

node.js学习

Node.js学习四 Node.js回调函数