微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NodeJS:我将如何渲染两个页面?

如何解决NodeJS:我将如何渲染两个页面?

所以我正在制作一个文件上传网站,当文件上传时,它会呈现一个上传页面,说它正在上传文件,但是当尝试呈现成功页面时,它不会这样做,因为页面已经呈现.我如何让它呈现成功页面

Deps.: Express、Express-FileUpload、EJS(用于视图引擎)

代码

const express = require('express')
const upload = require('express-fileupload')
const crypto = require('crypto')

uploaddisabledM = {
    'message': 'Uploading has been disabled for new users.',// This was for testing at the start
    'code': 'UPL_disABLED'
}
noFilesProvidedM = {
    'message': 'No files were provided.','code': 'NO_FILE_PROV'
}

const app = express()
const http = require('http').Server(app).listen(80)
app.use(express.static('public'))
app.use(upload())
app.set('view engine','ejs')

app.get('/',(res,req) => {
    return req.render('index')
})

app.get('/upload',req) => {
    req.redirect('/')
})

app.post('/upload',req) => {
    let file
    let ID
    let uploadpath
  
    if (!res.files || Object.keys(res.files).length === 0) {
      return req.status(400).render('error',{
          error: noFilesProvidedM.message,code: noFilesProvidedM.code
        })
    }

    file = res.files.sampleFile
    ID = crypto.randomBytes(5).toString('hex')
    uploadpath = `${__dirname}/uploads/${ID}-${file.name}`
    endingFileName = `${ID}-${file.name}`

    req.render('loading')
    
    file.mv(uploadpath,(err) => {
        if(err){
            res.status(500).render('error',{
                error: err.message,code: 500
            })
        }
    })

    return req.render('success',{ filename: endingFileName })
})

错误

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。