首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在pug中编辑表格的单元格,并将编辑的数据保存到数据库中

在Pug中编辑表格的单元格,并将编辑的数据保存到数据库中,可以通过以下步骤实现:

  1. 首先,确保你已经安装了Node.js和相关的包管理器(如npm或yarn)。
  2. 创建一个新的Node.js项目,并初始化一个package.json文件。
  3. 在项目的根目录下,通过命令行运行以下命令安装所需的依赖项:
代码语言:txt
复制
npm install express pug body-parser mongoose
  1. 创建一个名为app.js(或其他你喜欢的名称)的文件,并在其中添加以下代码:
代码语言:txt
复制
// 导入所需的模块
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');
});
  1. 创建一个名为index.pug的Pug模板文件,并添加以下代码:
代码语言:txt
复制
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());
        });
      });
  1. 运行以下命令启动服务器:
代码语言:txt
复制
node app.js
  1. 打开浏览器,访问http://localhost:3000,你将看到一个可编辑的表格页面。
  2. 编辑单元格中的数据并点击Save按钮,数据将保存到数据库中。

这个示例使用了Node.js的Express框架作为后端,使用了Pug作为模板引擎,使用了MongoDB作为数据库。通过使用Mongoose库,我们创建了一个名为TableData的数据模型来表示表格数据。GET路由用于显示可编辑的表格页面,其中通过渲染index.pug模板将表格数据传递到前端。POST路由用于保存编辑的数据到数据库中,其中通过ID查找并更新相关数据。

这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券