分享微信小程序签到考勤后端代码

介绍

微信小程序作为一种新型的应用形态,越来越多的企业开始使用小程序作为考勤管理工具,好处是方便快捷、实时更新、无需安装等多种优点,本文将分享如何使用Node.js编写一个简单的微信小程序考勤系统后端代码。

环境配置

Node.js安装

首先需要安装Node.js,Node.js是一个基于Chrome V8引擎的JavaScript运行时,它使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效,非常适合构建小型应用,包括移动端应用。

在官网上下载Node.js的安装包,安装过程中直接点击下一步即可,安装完成后可以在命令行中输入以下命令验证是否安装成功:

node -v

如果显示版本号,则说明安装成功。

开发工具选择

Node.js的快速发展已支持众多的开发工具,包括Microsoft Visual Studio Code、IntelliJ IDEA、Eclipse等多种集成开发环境。其中推荐使用Microsoft Visual Studio Code,简称VS Code,VS Code是一款免费的轻量级代码编辑器,有非常好的代码自动完成、智能感知、调试、版本控制(Git)等功能,同样适合构建小型应用。

实现考勤系统后端代码

创建项目并初始化

在VS Code中打开控制台,依次执行以下命令:

$ mkdir attendance_system // 创建项目文件夹

$ cd attendance_system // 进入项目文件夹

$ npm init // 初始化npm

其中,在执行npm init命令后,命令行会询问一系列的问题,这些问题均是关于项目的基本信息(例如:作者、项目名称、版本号等)。配置完成后,会在项目的根目录下生成一个package.json文件,该文件是npm的配置文件,记录了项目的基本信息、依赖关系等信息。

安装必要的依赖包

为了开发微信小程序考勤系统后端,需要安装以下依赖包:

1. express:一个Node.js的Web应用程序框架,提供了一系列的特性,例如路由管理、中间件处理等功能;

2. mongoose:一个Node.js的MongoDB对象模型工具,封装了MongoDB的操作和管理,在Node.js中比较常用的数据库管理工具之一。

执行以下命令进行安装:

$ npm install --save express mongoose

其中,--save命令会将安装的依赖包名称和版本号写入到package.json中,并自动安装在当前项目的node_modules文件夹下,简化了包的安装过程。

编写考勤系统后端代码

首先,在项目的根目录下创建一个app.js文件,用于编写考勤系统后端代码,代码如下:

// 引入必要的依赖包

const express = require('express');

const mongoose = require('mongoose');

// 连接MongoDB数据库

mongoose.connect('mongodb://localhost/attendance_system', {

useNewUrlParser: true,

useUnifiedTopology: true

});

// 创建数据库模型

const Schema = mongoose.Schema;

const UserSchema = new Schema({

name: { type: String, required: true },

age: { type: Number, default: 0 },

gender: { type: String, enum: ['male', 'female'], default: 'male' }

});

const UserModel = mongoose.model('User', UserSchema);

// 创建应用程序并监听端口

const app = express();

app.listen(3000, () => {

console.log('Server started on port 3000');

});

在代码中,首先引入必要的依赖包express和mongoose,然后使用mongoose.connect方法连接MongoDB数据库,创建一个UserModel数据模型,最后创建应用程序,并监听在3000端口上。

编写接口

为了实现考勤系统的功能,需要编写一些接口,方便小程序前端和后端的数据交互。

首先,创建一个新的文件attendance.js,用于编写所有考勤相关的接口。在文件中,编写以下代码:

// 引入必要的依赖包

const express = require('express');

const mongoose = require('mongoose');

// 连接MongoDB数据库

mongoose.connect('mongodb://localhost/attendance_system', {

useNewUrlParser: true,

useUnifiedTopology: true

});

// 创建数据库模型

const Schema = mongoose.Schema;

const UserSchema = new Schema({

name: { type: String, required: true },

age: { type: Number, default: 0 },

gender: { type: String, enum: ['male', 'female'], default: 'male' }

});

const UserModel = mongoose.model('User', UserSchema);

// 创建应用程序并监听端口

const app = express();

// 编写用户注册接口

app.post('/register', (req, res) => {

const { name, age, gender } = req.body;

const user = new UserModel({ name, age, gender });

user.save((err, user) => {

if (err) {

console.error(err);

res.json({ code: -1, msg: err.message });

return;

}

res.json({ code: 0, user });

});

});

// 创建用户考勤接口

app.post('/attendance', (req, res) => {

const { user_id, status } = req.body;

UserModel.findByIdAndUpdate(user_id, {

$push: { attendance: { status, time: new Date() } }

}, { new: true }, (err, user) => {

if (err) {

console.error(err);

res.json({ code: -1, msg: err.message });

return;

}

res.json({ code: 0, user });

});

});

// 监听端口

app.listen(3000, () => {

console.log('Server started on port 3000');

});

在代码中,创建了两个接口,分别是用户注册和用户考勤接口。用户注册接口中,接收到前端传递的用户信息后,调用mongoose的save方法将用户信息保存到MongoDB;用户考勤接口中,接收到前端传递的用户ID和考勤状态后,调用mongoose的findByIdAndUpdate方法将考勤信息保存到用户数据中。

启动服务

在完成所有以上代码编写后,使用以下命令启动考勤系统后端服务:

$ node app.js

若出现“Server started on port 3000”的提示,则说明服务已经正常启动。

总结

本文介绍了如何使用Node.js编写微信小程序考勤系统后端代码,并通过两个简单的接口实现了用户注册和用户考勤等功能。开发微信小程序考勤系统可以充分体现小程序实时性、快捷性、无需安装等特点,而Node.js则提供了一个轻量级的运行环境,可轻松实现高效的开发,读者可以根据本文实现考勤系统的方式,实现其他的小程序及其后端代码的开发。