Web记账本

记账本(node.js)

1. 功能实现

在web端实现一个记账本,有查看添加和删除账单记录功能,包括事件、时间、金额、备注等。

2. 技术要点与细节

app.js终端:npm start

routes/index.js:路由

views:HTML页面与ejs文件

npm包管理:npm i 包,npm uninstall 包

2.1 http服务

2.1.1 HTTP基本概念

HTTP(超文本传输协议)是一种基于TCP/IP的应用层通信协议,协议中主要包括了客户端和服务端两个方面的内容。

2.1.2 请求报文

请求行、请求头、空行、请求体

2.1.3 响应报文

响应行、响应头、空行、响应体

2.1.4 创建HTTP服务
//1. 导入http模块
const http = require('http');

//2. 创建服务对象create创建server服务
//request是对请求报文的封装对象,response是对响应报文的封装对象
const server = http.createServer((request,response)=>{
    response.end('Hello HTTP server');
});

//3. 监听端口
server.listen(9000,()=>{
    console.log('服务已经启动,端口9000监听中')
})

2.2 express框架、路由

2.2.1 express基本概念

是一个封装好的工具包,可以通过npm i express来安装。

2.2.2 express路由

路由确定了应用程序如何响应客户端对特定端点的请求。一个路由由请求方法路径回调函数组成。

const express = require('express')
const app = express();
app.<method>(path,callback)
app.get(path,callback) //创建get路由
app.post(path,callback)//创建post路由
app.all(path,callback) //匹配所有的请求方法
app.listen(port,callback) //监听端口
2.2.3 express中间件

中间件的作用是使用函数封装公共操作,简化代码。分为全局中间件、路由中间件。

2.2.4 模块化
module.exports = <xx>

2.3 ejs模板引擎

2.3.1 模板引擎

模块引擎是分离用户界面和业务数据的一种技术,ejs将HTML和js分离。

<!--执行JS代码:-->                <% code %>
<!--输出在转义的数据到模板上:-->   <%= code %>
<!--输出非转义的数据到模板上:-->   <%- code %>

2.4 mongoDB

2.4.1 MongoDB基本概念

MongoDB是一个基于分布式文件存储的数据库,有三个重要概念——数据库、集合、文档。在cmd窗口运行输入mogod启动,可以打开另一个窗口使用mongo命令连接本机的mongodb服务。

2.4.2 常用命令
/* 数据库命令 */
show dbs               //显示所有数据库
use dbs                //切换到指定的数据库
db                     //显示当前所在的数据库
db.dropDatabase()   //删除当前数据库

/* 集合命令 */
db.createCollection('集合名称')            //创建集合
show collections                       //显示当前数据库中所有集合
db.集合名.drop()                         //删除某个集合
db.集合名.renameCollection('newName')     //重命名集合

/* 文档命令 */
db.集合名.insert(文档对象)                //插入文档
db.集合名.find(查询条件)                  //查询条件
db.集合名.update(查询条件,新的文档)       //更新文档
db.集合名.remove(查询条件)                  //删除文档

2.5 会话控制

2.5.1 会话控制

会话控制是对会话进行控制,常见会话控制有三种:cookie、session、token。

2.5.2 cookie

cookie是HTTP服务器发送到用户浏览器并保存到本地的一小块数据。浏览器向服务器发送请求时,会自动将当前域名下可用的 cookie 设置在请求头中,然后传递给服务器。

2.5.3 session

session是保存在服务器端的一块数据,保存当前访问用户的相关信息。session可以实现会话控制,可以识别用户身份,快速获取当前用户的身份。

2.5.4 token

token是服务端生成并返回给HTTP客户端的一串加密字符串,token中保存着用户信息。token可以实现会话控制,可以识别用户身份,主要用于移动端APP。

2.5.5 JWT

JSON Web Token是目前最流行的跨域认证解决方案,可用于基于token的身份验证。

jwt.sign(数据,加密字符串,配置对象)

jwt.verify()

3. 问题与解决

Mongoose报错:Query.prototype.exec()不接收回调函数

安装的mongoose版本过高。accounts文件夹下的node_modules不包含mongodb有关的包,accounts根目录下的node_modules包含mongodb、mongodb-connection-string-url、mongoose等包。

router.get('/account', function(req, res, next) {
  AccountModel.find().sort({time:-1}).exec((err,data)=>{
    if(err){
      res.status(500).send('读取失败');
      return;
    }
    res.render('list',{accounts:data,moment:moment});
  })
});
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,Java Web 可以使用 Servlet 和 JSP 技术来开发记账本应用。以下是实现记账本的一些基本步骤: 1. 设计数据库表结构,包括用户表、账单表等。 2. 使用 JDBC 连接数据库,并编写 DAO 层代码,完成对数据库的增删改查操作。 3. 编写 Servlet 控制器,处理用户的请求,并调用相应的 DAO 方法操作数据库。 4. 编写 JSP 页面,展示数据并与用户交互。 5. 使用 CSS 和 JavaScript 美化和增强页面效果。 具体步骤如下: 1. 设计数据库表结构 创建两个数据库表,分别是用户表和账单表。用户表包含用户名和密码,账单表包含账单ID、账单类型、账单金额、账单日期等信息。 2. 使用 JDBC 连接数据库,并编写 DAO 层代码 使用 JDBC 连接数据库,并编写 DAO 层代码,完成对数据库的增删改查操作。在 DAO 层代码中,需要完成以下操作: - 建立数据库连接 - 创建 SQL 语句 - 执行 SQL 语句 - 处理 SQL 执行结果 - 关闭数据库连接 3. 编写 Servlet 控制器 编写 Servlet 控制器,处理用户的请求,并调用相应的 DAO 方法操作数据库。在 Servlet 类中,需要完成以下操作: - 处理 HTTP 请求 - 调用 DAO 层方法 - 处理 DAO 返回值 - 将结果返回给 JSP 页面 4. 编写 JSP 页面 编写 JSP 页面,展示数据并与用户交互。在 JSP 页面中,需要完成以下操作: - 显示数据 - 处理用户输入 - 调用 Servlet 控制器处理请求 5. 使用 CSS 和 JavaScript 美化和增强页面效果 使用 CSS 和 JavaScript 美化和增强页面效果。在 CSS 文件中,可以设置页面的样式和布局;在 JavaScript 文件中,可以实现一些交互效果和数据校验功能。 以上就是使用 Java Web 技术开发记账本的基本步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值