在Pug中编辑表格的单元格,并将编辑的数据保存到数据库中,可以通过以下步骤实现:
npm install express pug body-parser mongoose
// 导入所需的模块
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
// 创建Express应用
const app = express();
// 设置Pug作为模板引擎
app.set('view engine', 'pug');
// 使用Body Parser中间件解析请求体
app.use(bodyParser.urlencoded({ extended: true }));
// 连接到MongoDB数据库
mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('Connected to the database');
})
.catch((error) => {
console.log('Error connecting to the database:', error);
});
// 创建数据模型
const TableData = mongoose.model('TableData', {
cellData: String
});
// GET路由:显示编辑表格的页面
app.get('/', (req, res) => {
TableData.find()
.then((data) => {
res.render('index', { tableData: data });
})
.catch((error) => {
res.render('error', { message: 'Error retrieving data from the database' });
});
});
// POST路由:保存编辑的数据到数据库
app.post('/save', (req, res) => {
const { id, cellData } = req.body;
TableData.findByIdAndUpdate(id, { cellData })
.then(() => {
res.redirect('/');
})
.catch((error) => {
res.render('error', { message: 'Error saving data to the database' });
});
});
// 监听端口
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
html
head
title Editable Table
body
h1 Editable Table
table
thead
tr
th Cell Data
th Actions
tbody
each data in tableData
tr
td.content(contenteditable='true') #{data.cellData}
td
form(action='/save', method='post')
input(type='hidden', name='id', value=data._id)
input(type='hidden', name='cellData', value='#{data.cellData}')
input(type='submit', value='Save')
script(src='https://code.jquery.com/jquery-3.6.0.min.js')
script.
$(document).ready(function() {
$('td.content').on('input', function() {
$(this).parent().find('input[name="cellData"]').val($(this).text());
});
});
node app.js
这个示例使用了Node.js的Express框架作为后端,使用了Pug作为模板引擎,使用了MongoDB作为数据库。通过使用Mongoose库,我们创建了一个名为TableData的数据模型来表示表格数据。GET路由用于显示可编辑的表格页面,其中通过渲染index.pug模板将表格数据传递到前端。POST路由用于保存编辑的数据到数据库中,其中通过ID查找并更新相关数据。
这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。
云+社区技术沙龙[第17期]
小程序·云开发官方直播课(数据库方向)
DB TALK 技术分享会
企业创新在线学堂
云+社区沙龙online第6期[开源之道]
企业创新在线学堂
云+社区技术沙龙[第19期]
云+社区沙龙online[数据工匠]
云+社区沙龙online[数据工匠]
领取专属 10元无门槛券
手把手带您无忧上云