nodejs+ajax+mysql +html实现数据传输

打开俩个服务器:apache和nodejs

1、在apache服务器中运行html,html代码如下:

图上是打开nodejs服务器后,连接数据库,执行数据查询,在apache服务器打开网页数据请求成功后,显示效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <link rel="stylesheet" href="bootstrap/dist/css/bootstrap.min.css">
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/ajax.js"></script>
</head>
<body>
        <div class="container">
        <div class="table-responsive">
            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th>姓名</th>
                        <th>年龄</th>
                        <th>性别</th>
                        <th>手机号</th>
                        <th>地址</th>
                    </tr>
                </thead>
                <tbody id="user">
                    
                </tbody>
            </table>
        </div>
    </div>
    <script type="text/javascript">
        $(function() {
            var res = loadJsonDoc('http://localhost:8888/');//nodejs服务器地址
            var usersDetail = $.parseJSON(res);
            if (usersDetail.length > 0) {
                for (i = 0; i <= usersDetail.length - 1; i++) {
                    var productList = '<tr>\
                        <td>' + usersDetail[i].user_name + '</td>\
                        <td>' + usersDetail[i].user_age + '</td>\
                        <td>' + usersDetail[i].user_gender + '</td>\
                        <td>' + usersDetail[i].user_phone + '</td>\
                        <td>' + usersDetail[i].user_address + '</td>\
                    </tr>';
                    $("#user").append(productList);
                }
            }
        })
    </script>
</body>
</html>

2、创建node服务器,并连接数据库 ,运行node服务器:node server.js(相关代码如下):

// 模块引入开始

var express = require('express');
var app = express();
var mysql = require('mysql');

/* 连接数据库 */
var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    port: '3306',
    database: 'chenshanqiang'
});
connection.connect();

//查询数据
app.get('/', function(req, res) {

    //设置允许跨域的域名,*代表允许任意域名跨域
    res.header("Access-Control-Allow-Origin", "*");

    //允许的header类型
    res.header("Access-Control-Allow-Headers", "content-type");

    //跨域允许的请求方式 
    res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");

    var sql = 'select * from user';

    // 执行sql语句
    connection.query(sql, function(err, result) {
        if (err) {
            console.log('[SELECT ERROR] - ', err.message);
            return;
        }
        res.send(result);
    });
        //connection.end();服务器不关闭
});

 

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
实现登录功能需要以下步骤: 1. 创建一个小程序,包括登录页面和后台 API 接口。 2. 在小程序中使用 `wx.login()` 获取用户临时登录凭证 code,并将其发送到后台 API 接口。 3. 后台 API 接口使用 `code` 和小程序开发者密钥 `appid`、`secret` 调用微信提供的 API 接口获取用户的 `openid` 和 `session_key`。 4. 将获取到的 `openid` 保存到 MySQL 数据库中,并生成一个随机的 `token`,将其返回给小程序。 5. 小程序将 `token` 保存到本地,以后每次请求后台 API 接口时,都需要在请求头中带上 `token`。 6. 后台 API 接口在接收到请求时,从请求头中获取 `token`,并在 MySQL 数据库中查找对应的 `openid`,如果存在则说明用户已登录,否则返回未登录错误信息。 下面是具体的实现步骤: 小程序端代码: ```javascript // login.js Page({ login: function() { wx.login({ success: res => { wx.request({ url: 'http://localhost:3000/login', method: 'POST', data: { code: res.code }, success: res => { // 将token保存到本地 wx.setStorageSync('token', res.data.token) } }) } }) } }) // index.js Page({ onLoad: function() { wx.request({ url: 'http://localhost:3000/user', header: { 'token': wx.getStorageSync('token') }, success: res => { console.log(res.data) } }) } }) ``` 后台 API 接口代码: ```javascript const express = require('express') const app = express() const mysql = require('mysql') const request = require('request') // 创建 MySQL 连接池 const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'test' }) // 登录接口 app.post('/login', (req, res) => { const code = req.body.code const appid = 'your appid' const secret = 'your secret' // 调用微信 API 获取 openid 和 session_key request(`https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&secret=${secret}&js_code=${code}&grant_type=authorization_code`, (err, response, body) => { const { openid, session_key } = JSON.parse(body) // 生成一个随机 token const token = Math.random().toString(36).substr(2) // 将 openid 和 token 保存到 MySQL 数据库中 pool.query('INSERT INTO user SET ?', { openid, token }, (err, result) => { if (err) throw err res.send({ token }) }) }) }) // 用户信息接口 app.get('/user', (req, res) => { const token = req.headers.token // 在 MySQL 数据库中查找对应的 openid pool.query('SELECT openid FROM user WHERE token = ?', [token], (err, result) => { if (err) throw err if (result.length === 0) { res.status(401).send('Unauthorized') } else { // 如果存在对应的 openid,则说明用户已登录 res.send('User Info') } }) }) app.listen(3000, () => console.log('Server started')) ``` 以上代码仅为示例,实际项目中需要根据具体需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈善强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值