You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

前端fetch POST DOM数据后,如何在Node.js中触发res.render渲染URL?

问题:POST更新数据库后确保下一次GET请求渲染最新数据的实现方案

尽管查阅了诸多相关问题,我仍不确定在前端JS收集DOM数据并通过fetch POST至Express服务器的POST接口后,渲染对应URL的最佳方案是什么。

我的前提说明:

  • 我知晓fetch POST本身不会触发渲染
  • 目前我不寻求替代POST方法(如XML/FORM等),若当前方案不可行我会另行提问
  • 感谢关于即时刷新URL的回复,但我的核心需求是让对应URL能在浏览器下一次GET请求时完成渲染
  • 我推测当前问题在于应用仅在服务器启动时渲染一次该URL

请问在fetch POST请求及MySQL的ttupdate查询完成后,如何调用render函数?

附渲染代码片段

// snippet render code ////////////////////////////////////////////////
function render(file, url, contentdata) {
    app.get(url, async(_req, res, next) => {
        try {
            res.render(file, { data: await contentdata });
        } catch (err) {
            next(err);
        }
    });
}

render('time-picker', '/time-picker', timetablesthree)

应在以下POST接口代码片段中的何处及如何实现该逻辑?

// snippet new TIME-PICKER table to DB 
app.post("/time-picker-input", async(req, res) => {    
    
    for(i=0; i<=167; i++) {        
        let inputFieldId = req.body[i].fieldid;
        let inputFieldValue = req.body[i].fieldvalue;
        // console.log(inputFieldId);  

    await ttupdate(inputFieldValue, inputFieldId, 'timetablesthree');
    };
    res.json({ message: 'Success' });
 });

环境配置信息

let express = require('express')
let bodyParser = require('body-parser')
let app = express()
app.set('view engine', 'ejs')
let path = require('path')
app.set('views', path.join(__dirname, 'views'))
app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
    extended: true
}))
app.use((err, req, res, next) => {
    console.error(err.stack)
    res.status(500).send('Sorry - something broke...')
})
app.listen(3000, (req, res) => {
    console.log("App is running on port 3000")
})

let { singledbentry, refresh, refreshTwo, ttupdate } = require("./database.js")
let activetime = require('./activetime.js');

let mysql = require('mysql2')

内容的提问来源于stack exchange,提问作者IoT-Practitioner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:55:09