javascript 全栈项目的用户行为跟踪机制

qoefvg9y  于 2022-12-17  发布在  Java
关注(0)|答案(1)|浏览(132)

我正在创建一个项目与React和。净核心,我想添加跟踪用户行为的功能。
我只想知道是谁添加的产品?是谁更新的?是谁删除的?
我脑子里有两个选择,哪一个更好,我不知道

1-在. Net中创建类似触发器的跟踪机制

public class ActivityType
{
    public int ActivityTypeId { get; set; }
    public string ActivityTypeName { get; set; }//Added,Updated
}
public class Activity
{
    public int ActivityId { get; set; }
    public DateTime ActivityTime { get; set; }
    public int ActivityTypeId { get; set; }
    public ActivityType ActivityType { get; set; }
}
public class ProductActivity
{
    public int ProductActivityId { get; set; }
    public virtual Product Product{ get; set; }
    public int ProductId { get; set; }
    public int ActivityId { get; set; }
    public virtual Activity Activity { get; set; }
    public virtual User User { get; set; }
    public int UserId { get; set; }
}

在产品控制器内部〉添加产品

[HttpPost("add")]
public async Task<ActionResult<Product>> Add(Product product)
{         
    var result = _productService.Add(product);
    if (result.Success)
    {
        //example code
        //var newActivity=_context.ProductActivity
        //{
        //productId:result.Data.Id
        //ActivityId:1 //added
        //User:1
        //})
        //_context.ProductActivity.Add(newActivity);
        //_context.SaveChanges();

        return Ok(result);
    }
}

2-在React中创建跟踪机制,使用操作函数(redux)

如果我选择这种方式,我必须创建ProductActivity控制器和端点,然后我将在react中点击此端点。

const createProduct = async () => {
    const tokenResponce = await productService.createProduct({
        productName:"x" ,
    });
    
    if(tokenResponce)
    {
        dispatch(addedProduct());
    }       
    else
    {
        console.log("error");
    } 
};
2sbarzqh

2sbarzqh1#

我猜想您可能希望在某个地方保持跟踪,在这种情况下,最好在服务器上进行跟踪(选项1)据我所知,您不需要在前端做任何事情,因为后端知道哪个用户调用每个方法(我假设用户已经登录)。因此,您将在每个create方法中获取当前登录用户的标识产品的(添加)、读取(获取)、更新、删除(CRUD)

相关问题