记一次简单人员信息录入系统开发

开发背景

某日接到大学某同学的一个活,他需要做一个人员信息的二维码,需要将人员基本信息还有N张扫描图片合成到一张图上。他的方法是简单粗暴的利用PS一个图一个图的合成(按照我的PS水平合成一张图的话大概耗时20分钟)。作为一个懂得粗浅前端的知识的我来说,这种方法显然是不可取的。综合需求,我决定使用express搭建一个简单的人员信息录入系 统然后展示出来,再用phantomjs自动截取图片......


>###`express`安装及基本目录结构

首先就是安装express了,首先你的电脑要安装过nodejsnpm 输入以下命令安装express以及项目目录初始化需要的 express generator 由于我们上传文件时需要用到express 的 multer中间件这里我们也给安装上

 npm install express --save
 npm install express-generator -g
 npm install multer --save
复制代码

OK现在一切就绪,见证奇迹的时刻到了,当 当 当 再命令行里输入

  express -e 
复制代码

你将会得到由express generator 自动创建的一个基础的express项目目录和文件(如下所示)

####下面我们来分析一下每个文件的作用分别是什么。###

  • 首先www这个是express 的入口文件,主要作用就是对运行环境的配置,还有生成一个web服务器。
  • 然后是public文件夹这个文件夹是由express定义的一个服务器可访问静态文件存放的地方也就是网页图片css以及js
    具体用法可以去 express官网查看。
  • routers文件夹包含了express的路由相关的文件,我们看一下这里面的index.jsusers.js都分别包含什么内容。

可以看到这两个文件分别定义了当url分别输入 http://xxxxx.xx/http:/xxxxxx.xxx/users的不同的路由行为。 而这两个路由文件的调用是在aap.js里发生的。

  • view文件夹里面放的是express的视图层文件,也就是前端展示相关的文件,再本项目里是 EJS的模板文件, EJS是一个模板引擎除了 EJS外还有 PugMustache, and  Jade ,原来express默认的模板引擎是 Jade 现在是 EJS,关于模板引擎方面的知识大家可以参考express官网的信息
  • app.js 这个文件是各种资源引入,初始化express对象以及设置路由及模板引擎的文件。
  • package.json 文件这个文件就是项目的配置文件了,项目的基本信息以及各种安装包依赖都在里面。

####进行实际的开发

  • 首先根据设计图做好展示页(index.ejs)(设计图就不放出来了,因为确实惨不忍睹);
  • 制作一个简单的数据上传页面模板文件(admin.ejs);
  • index.js路由开发

var express = require('express'); // 引入express
var router = express.Router(); // 路由实例
var multer = require('multer'); // 引入multer中间件
// 初始化每次上传文件长度的flag值
var i = 0;
// 初始化将post传过来的req.body值缓存的对象
var getObj;

// 自定义multer上传文件的存储位置及文件名
var storage = multer.diskStorage({
    // 定义文件存储位置
    destination: 'public/upload',
    // 重命名文件(如果未制定multer将生成随机名且无后缀)
    filename: function (req, file, cb) {
        // 判断上次上传文件的flag值是否大与此次上传的文件长度
        if(i>req.files.length){
            i = 0;
        }
        // 重命名文件此处cb是callback函数的缩写
        cb(null, req.body.name+file.fieldname + i++ + '.jpg');
    }
});

// 应用multer的配置使其生效
var upload = multer({storage: storage});
// post 请求时的返回
router.post('/', upload.any()/* 此处是引入multer处理上传的文件any()指接收任何文件 */, function (req, res, next) {

    res.render('index', {obj: req.body});
    console.log(req.body);
    console.log(req.files);
    console.log(upload.single('pic_person'));
    next();
},function(req,res){
    getObj = req.body;
});
console.log(getObj);

// get请求时的返回
router.get('/',function(req,res,next){
    res.render('show',{obj : getObj});
});

// 导出路由
module.exports = router;

复制代码
  • users.js

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
  res.render('admin',{title:"admin"});
});

module.exports = router;

复制代码

主要就是定义了路由处理函数

####总结 文中没有贴出模板文件,因为这个项目本身比较简单,只是一个工具,这篇文章也只是个人的一个总结,如果有感兴趣的同学何以去我得github上看看具体的代码。 github:alixwang

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目名称:基于明华MRF-330读写器开发的考勤系统 背景: 随着企业规模的扩大,管理人员对员工考勤管理的要求也越来越高。为了提高考勤效率和减少人力成本,使用自动化考勤系统已成为企业的必要选择。考勤系统可以自动录员工上下班时间、加班时间、请假时间等信息,大大减少了人力成本和管理难度。 目的: 本项目旨在基于明华MRF-330读写器开发一款可靠、高效的考勤系统,以提高企业的考勤效率和管理水平。 功能需求: 1. 员工信息管理功能 考勤系统需要支持员工信息录入、修改和删除。员工信息包括姓名、工号、部门、岗位等基本信息。 2. 考勤录管理功能 考勤系统需要实现自动打卡录员工考勤信息,包括上下班打卡,加班打卡,请假打卡等。系统需要支持手动修改考勤录,以便管理人员能够对异常情况进行处理。 3. 考勤统计报表功能 考勤系统需要支持考勤数据的统计和生成报表。可以根据员工、部门、时间段等条件进行统计和查询,生成各种报表,如考勤异常报表、考勤汇总报表等。 4. 权限管理功能 考勤系统需要支持权限管理功能,包括管理员和普通员工两种角色。管理员可以对员工信息、考勤录进行管理和修改,普通员工只能查看自己的考勤录。 5. 系统设置功能 考勤系统需要支持系统设置功能,包括考勤规则设置、打卡设备配置、报表打印设置等。 非功能需求: 1. 系统稳定性 考勤系统需要具有高可靠性和稳定性,能够保证数据的准确性和完整性,防止数据丢失或损坏。 2. 系统安全性 考勤系统需要具有较高的安全性,保护员工的隐私信息不被泄露,防止未经授权的访问和操作。 3. 用户友好性 考勤系统需要具有良好的用户界面和用户体验,操作简单、直观,方便用户使用。 4. 扩展性 考勤系统需要具有较强的扩展性,能够根据企业需求进行定制化开发和二次开发。 技术选型: 1. 开发语言:Java 2. 数据库:MySQL 3. 框架:Spring Boot、MyBatis、Shiro 4. 前端框架:Vue.js 5. 打卡设备:明华MRF-330读写器 总结: 基于明华MRF-330读写器开发的考勤系统,可以大大提高企业的考勤效率,降低管理成本,同时也能提高管理水平和员工满意度。本项目需求分析中提出了系统的功能需求和非功能需求,技术选型方案也给出了建议,为后续的开发工作提供了参考。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值