前言:
其实在阿里巴巴的《Java开发手册》里边,空指针,也就是NullPointerException 简称NPE的,怕一下子写出NPE,部分的伙伴看不懂,索性就改成了空指针。下文的空指针异常,我们用NPE表示。
2024年08月19日
前言:
其实在阿里巴巴的《Java开发手册》里边,空指针,也就是NullPointerException 简称NPE的,怕一下子写出NPE,部分的伙伴看不懂,索性就改成了空指针。下文的空指针异常,我们用NPE表示。
2024年08月19日
public class Greeting {
public static void main(String[] args) {
Greeting greeting = null;
greeting.hello();
}
public static void hello() {
System.out.println("Hello World!");
}
}
2024年08月19日
空指针异常应该是初学编程的同学遇到最多的一种异常,由于缺少编程经验,对引用数据类型的数据使用不恰当导致的异常。
空指针就是空引用,java空指针异常就是引用变量本身为null,却调用了null的方法,这个时候就会出现空指针异常。
2024年08月19日
通篇说明:
System.out.println(object)是java语言用于获取对象的内存地址的方法。
案例一:
int a=0;
int b=0;
System.out.println("*************案例1****************");
2024年08月19日
双指针算法,顾名思义,就是在算法实现中使用两个指针来遍历数据结构(如数组或链表)以达到特定目的的一种技术。这种技术的魅力在于其简单性和效率,特别是在解决一些特定类型的问题时,比如查找成对的元素或者判断是否存在某种满足条件的序列。
2024年08月19日
本文要点:
2024年08月19日
编辑丨极客时间编辑部
最近,对于今年 5 月份 GitHub 上开源项目的排名已经统计出来了,本文列举了 12 项最热门的开源项目。
1.Node 之父的新项目 deno(Star 3625)
最近,Node 之父发布了新的开源项目 deno,从官方介绍来看,可以认为它是下一代 Node,通过使用 Go 语言代替 C++,重新编写跨平台底层内核驱动,上层仍然使用 V8 引擎,最终提供一个安全的 TypeScript 运行时。
2024年08月19日
fileUp.uploadXlsx = async function(params) {
try {
var fileName = params['fileName'];
var filePath = params['path'];
var fileType = params['fileType'];
console.log(fileName + ':' + fileType);
if( filePath != null && filePath != undefined) {
var sheets = xlsx.parse(filePath, { cellDates: true });
// var arr = [];
//sheets是一个数组,数组中的每一项对应test.xlsx这个文件里的多个表格,如sheets[0]对应test.xlsx里的“测试参数”这个表格,sheets[1]对应Sheet2这个表格
var sheet = sheets[0]
var newSheetsArr = [];
//sheet是一个json对象,格式为{name:"测试参数",data:[]},我们想要的数据就存储在data里
for(var i=1; i<sheet["data"].length; i++){ //excel文件里的表格一般有标题所以不一定从0开始
var row=sheet['data'][i];
if(row && row.length > 0){
console.log("row",row)
//手机号码正则
if((/^1[3456789]\d{9}$/.test(row[1]))&&row[0]>0&&row[2]){
//判断手机号是否存在,存在返回id,不存在创建用户并返回id
let userid = 0
let users = await daoUser.getByPhone(row[1])
if(users&&users.length>0){
userid = users[0].id;
await daoPoster.addComment([userid,row[0],row[2],row[3]])
}else{
//根据手机号码创建新用户
var dateNow = moment().utc().add(480,"minutes").toDate();
let addUserResult = await daoUser.addUser([row[1],row[1],dateNow]);
console.log("addUserResult",addUserResult)
if (addUserResult && addUserResult.insertId != 0){
userid=addUserResult.insertId;
await daoPoster.addComment([userid,row[0],row[2],row[3]])
}else{
console.log("添加用户失败,未取到userid")
return resultApi.helper(resultMsg.SYSTEM_ERROR.code,resultMsg.SYSTEM_ERROR.message);
}
}
//更新日活
await posterController.updateUserInteract(userid);
}else{
console.log("数据校验失败",row)
}
//否则数据跳过
}
}
// arr.push(newSheetsArr);
// console.log("arr",arr)
// sheets.forEach(function(sheet){
// });
return resultApi.helper(resultMsg.SUCCESS.code,resultMsg.SUCCESS.message);
}
} catch (error) {
console.log("error",error)
return resultApi.helper(resultMsg.SYSTEM_ERROR.code,resultMsg.SYSTEM_ERROR.message);
}
}
2024年08月19日
点击右上方红色按钮关注“web秀”,让你真正秀起来
Todo List项目到这里已经到了非常重要的部分,涉及到用户部分。权限,多人协同操作等,都是非常重要,且复杂的地方,所以这里分为几个章节,一步一步的完成。
本章节主要讲讲用户登录,注册会话部分。