【问题标题】:What is the best approach for providing the recent activity in a system在系统中提供最近活动的最佳方法是什么
【发布时间】:2020-07-28 11:23:21
【问题描述】:

我需要在我的系统中保存用户最近的活动。知道如何实现吗? 链接到任何文章? 我使用在节点上运行的 ExpressJS 作为服务器。

提前致谢。

【问题讨论】:

    标签: mysql express architecture system


    【解决方案1】:

    这取决于应将哪些操作保存为用户活动。
    处理 GET / POST 请求:

    1. 在 MySQL Workbench 中使用表 «requests» 创建名为 «activity» 的 MySQL 数据库,如下所示:

    1. 通过键入安装官方 MySQL 连接器

       npm install @mysql/xdevapi --save --save-exact
      
    2. 打开你的 index.js 并输入如下内容:

       const express = require('express');
       const mysqlx = require('@mysql/xdevapi');
      
       const app = express();
      
       function log(url) {
         mysqlx.getSession('dbLogin:dbPassword@localhost:33060')
       .then(session => {
         session
           .getSchema('activity')
           .getTable('requests')
           .insert([ 'username', 'url' ])
           .values([ 'User', url ])
           .execute();
       });
       }
      
       app.get('/', (req, res) => {
         log(req.url);
         res.sendFile(__dirname + '/index.html');
       });
      
       app.get('/info', (req, res) => {
         log(req.url);
         res.sendFile(__dirname + '/info.html');
       });
      
       app.listen(3000);
      

    对于鼠标/键盘事件等更详细的信息,您可以使用 AJAX (see this answer for details) 发送 POST 请求或使用WebSockets

    【讨论】:

    • 这解释了事情的后端,谢谢@razor3x,但如果我在前端使用反应,前端的路由实际上并没有通过其余的 api 调用发送到后端对?所以除非我用api调用发送路由并像你解释清楚的那样保存在数据库中,有没有其他方法可以获取前端到数据库的路由?
    最近更新 更多