angular2(ng2) + express(node) + mysql跨域获取数据

发布时间:2019-06-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了angular2(ng2) + express(node) + mysql跨域获取数据脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

图片描述

1、 Angular2 核心代码

主要是使用jsonp ?callback=JSONP_CALLBACK (核心代码)

constructor(public jsonp:Jsonp) {
    // 这里是跨域请求端口为3000的exPress服务器数据
    let wikiUrl = 'http://localhost:3000/users?callback=JSONP_CALLBACK';
    this.jsonp.get(wikiUrl)
        .map(res => res.json())
        .subscribe((response) => {
            console.log(response);
        }, (error) => {
            console.error(error);
        });
}

注意:map, jsonp模块都需要提前加载进来

2、exPRess部分代码
主要是连接数据库,使用连接池连接数据库,然后查询数据库数据,使用res.jsonp返回数据

A. 首先在express根目录中创建一个conf目录,然后创建db.js数据库连接配置文件

// 数据库连接
VAR MySQL=require("mySQL");  
var pool = mysql.createPool({  
    host: 'localhost',  
    user: 'root',  
    password: '123456',  
    // 数据库名称
    database: 'basketball'
});
var connection=function(sql,callback){  
    pool.getConnection(function(err,conn){  
        if(err){  
            callback(err,null,null);  
        }else{  
            conn.query(sql,function(err,rows,fields){  
                //释放连接  
                conn.release();  
                //事件驱动回调  
                callback(err,rows,fields);  
            });  
        }  
    });
};  

module.exports=connection;  

B. 在相应的路由界面中查询数据,并返回给前端

var express = require('express');
var router = express.Router();
// 连接数据库
var connection = require("../conf/db.js");

/* GET users listing. */
router.get('/', function(req, res, next) {
      // res.jsonp({"name": "zhangxuchao"});
      connection("select * From user", function(err, rows, fields) {
          console.log(rows);
          res.jsonp(rows);
      })
});

module.exports = router;

补充:如果有查询条件,sql语句写法参考

"select * from user where username='"+username+"' and password='"+password+"'"

3、OK浏览器中输入地址,查看数据。

脚本宝典总结

以上是脚本宝典为你收集整理的angular2(ng2) + express(node) + mysql跨域获取数据全部内容,希望文章能够帮你解决angular2(ng2) + express(node) + mysql跨域获取数据所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。