Привет, я делаю экспресс-приложение, подключенное к серверу MySQL на удаленной базе данных, предоставленной моим колледжем. Я следую инструкциям по настройке аутентификации passport.js и столкнулся с проблемой при попытке опубликовать данные при публикации запроса / regnew
ошибка, появляющаяся в замазке:
Ошибка: /students/danu7_tc3/project/views/error.hbs: Невозможно установить заголовки после их отправки.
at validateHeader (_http_outgoing.js: 491: 11)
в ServerResponse.setHeader (_http_outgoing.js: 498: 3)
в ServerResponse.header (/students/danu7_tc3/project/node_modules/express/lib/response.js:767:10)
на ServerResponse.send (/students/danu7_tc3/project/node_modules/express/lib/response.js:170:12)
сделано (/students/danu7_tc3/project/node_modules/express/lib/response.js:1004:10)
по адресу /students/danu7_tc3/project/node_modules/hbs/lib/hbs.js:93:9
в Object.done (/students/danu7_tc3/project/node_modules/hbs/lib/async.js:74:20)
по адресу /students/danu7_tc3/project/node_modules/hbs/lib/hbs.js:88:18
по адресу /students/danu7_tc3/project/node_modules/hbs/lib/hbs.js:69:11
в Object.done (/students/danu7_tc3/project/node_modules/hbs/lib/async.js:74:20)
Это мой код index.js
var express = require('express');
var router = express.Router();
var passport = require('passport');
var bcrypt = require('bcrypt');
const saltRounds = 10;
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', {
title: 'Express'
});
});
router.get('/home', function(req, res, next) {
res.render('home', {
title: 'Home'
});
});
router.get('/registration', function(req, res, next) {
res.render('registration');
});
router.post('/regnew', function(req, res, next) {
var username = req.body.username;
var email = req.body.email;
var password = req.body.password;
console.log(username);
const db = require('./db_connection.js');
bcrypt.hash(password, saltRounds, function(err, hash) {
db.query('INSERT INTO Users (username, email, password) VALUES
( ? , ? , ? )
',[username,email,hash], function(error,result,fields) {
if (error) throw error;
db.query('SELECT LAST_INSERT_ID() as user_id', function(error,
results, fields) {
if (error) throw error;
const user_id = results[0];
console.log(results[0]);
req.login(user_id, function(err) {
res.redirect('/home');
});
});
res.render('registration', {
title: 'Success'
});
});
});
});
passport.serializeUser(function(user_id, done) { //store user id in
session
done(null, user_id);
});
passport.deserializeUser(function(id, done) { //read from the session
done(err, user_id);
});
module.exports = router;