Sunday 31 May 2020

Cannot set headers after they are sent to the client

When I'm try to access the data on my view I get this error. Any idea where the problem is? I suspect that it might be something with the way I do the the authentication but I'm not sure.Error:Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client at ServerResponse.setHeader (_http_outgoing.js:470:11) at ServerResponse.header (/Users/zvado/Desktop/Programming/javascript/DevSpaceR/node_modules/express/lib/response.js:771:10) at ServerResponse.contentType (/Users/zvado/Desktop/Programming/javascript/DevSpaceR/node_modules/express/lib/response.js:599:15) at ServerResponse.send (/Users/zvado/Desktop/Programming/javascript/DevSpaceR/node_modules/express/lib/response.js:145:14) at done (/Users/zvado/Desktop/Programming/javascript/DevSpaceR/node_modules/express/lib/response.js:1008:10) at Object.exports.renderFile (/Users/zvado/Desktop/Programming/javascript/DevSpaceR/node_modules/jade/lib/index.js:374:12) at View.exports.__express [as engine] (/Users/zvado/Desktop/Programming/javascript/DevSpaceR/node_modules/jade/lib/index.js:417:11) at View.render (/Users/zvado/Desktop/Programming/javascript/DevSpaceR/node_modules/express/lib/view.js:135:8) at tryRender (/Users/zvado/Desktop/Programming/javascript/DevSpaceR/node_modules/express/lib/application.js:640:10) at Function.render (/Users/zvado/Desktop/Programming/javascript/DevSpaceR/node_modules/express/lib/application.js:592:3) Controller:const GetMain = (req, res) => { const Auth = new AuthJWT() const dbContext = new DbContext().Initialize('projects'); let logged = Auth.IsLoggedIn(req) let data = Auth.GetUserData(req) if (logged) { let projects = [] let querryProjectsByUser = dbContext.where("creator", "==", data.username); querryProjectsByUser .get() .then((snapshot) => { snapshot.forEach((project) => { let title = project["_fieldsProto"]["title"]["stringValue"] let description = project["_fieldsProto"]["description"]["stringValue"] let date = project["_fieldsProto"]["created"]["timestampValue"] let owner = project["_fieldsProto"]["creator"]["stringValue"] let language = project["_fieldsProto"]["language"]["stringValue"] let id = project.id let tempObj = { title: title, description: description, date: date, owner: owner, language: language, id: id } projects.push(tempObj) }) }) .catch(e => console.log(e)) .finally(() => { data.projects = projects console.log(data.projects) res.render("Manager/Main", data) res.end() }) } else { res.render("/Auth/Login", { error: "You need an account to access manager!" }) } } Auth code:class Auth { IsLoggedIn(req) { const token = req.cookies.token; if (!token) { return false } else{ return true } } GetUserData(req){ const token = req.cookies.token; let payload = jwt.verify(token, 'auth') let data = { username: payload.username, admin: payload.admin, logged: true } return data } } module.exports = Auth View:extends ../layout block content h1 Manager if data.projects.length == 0 h1 You have no projects else each project in data.projects h1=project.title p=project.description p=project.creator

Submitted May 31, 2020 at 12:51PM by draganov11

No comments:

Post a Comment