Node js Вход и регистрация REST API с ошибкой базы данных MySQL, пожалуйста [закрыто] ⇐ Javascript
Node js Вход и регистрация REST API с ошибкой базы данных MySQL, пожалуйста [закрыто]
Node js Вход и регистрация REST API с ошибкой базы данных MySQL, пожалуйста, помогите
Начало запуска npm
начать nodemon app.js
[узел] 3.0.1 [nodemon] для перезапуска в любой момент введите rs
[nodemon] путь(и) просмотра: . [nodemon] просмотр расширений: js,mjs,cjs,json [nodemon] запускает node app.js
Ошибка при регистрации: TypeError: невозможно прочитать свойства неопределенного значения (чтение «запроса») в D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\models\shopModel.js:7:8 в новом обещании () в Object.checkIfMobileExists (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\models\shopModel.js:5:10) в экспорте.registerUser (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\controllers\authController.js:15:42) в Layer.handle [как handle_request] (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\layer.js:95:5) в следующий раз (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\route.js:144:13) в Route.dispatch (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\route.js:114:3) в Layer.handle [как handle_request] (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\layer.js:95:5) в D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\index.js:284:15 в Function.process_params (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\index.js:346:12)
пожалуйста, помогите.
Код shopModel.js:32:6)
const { db } = require('../config/database'); // Проверяем, зарегистрирован ли уже номер мобильного телефона функция checkIfMobileExists(мобильный) { вернуть новое обещание((разрешить, отклонить) => { const query = 'SELECT * FROM shop_users WHERE mobile = ?'; db.query(query, [mobile], (ошибка, результат) => { если (ошибка) { отклонить (ошибка); } еще { решить (результат); } }); }); } // Регистрируем нового пользователя по номеру мобильного телефона функция RegisterUser(имя, мобильный телефон, пароль, обратный вызов) { if (обратный вызов typeof !== 'function') { return Promise.reject(new Error('Неверная функция обратного вызова 1')); } const query = 'INSERT INTO shop_users (имя, мобильный телефон, пароль) ЗНАЧЕНИЯ (?, ?, ?)'; returnpool.query(запрос, [имя, мобильный телефон, пароль]) .then(() => { если (обратный вызов) { обратный вызов (ноль); } }) .catch((ошибка) => { если (обратный вызов) { обратный вызов (ошибка); } }); } // Получение данных пользователя по номеру мобильного телефона функция getUserByMobile (мобильный, обратный вызов) { const query = 'SELECT * FROM shop_users WHERE mobile = ?'; пул.запрос(запрос, [мобильный]) .then(([result]) => обратный вызов(null, result)) .catch((ошибка) => обратный вызов(ошибка, ноль)); } // Получаем список всех пользователей магазина из базы данных функция getAllShopUsers (обратный вызов) { const query = 'SELECT * FROM shop_users'; пул.запрос (запрос) .then(([result]) => обратный вызов(null, result)) .catch((ошибка) => обратный вызов(ошибка, ноль)); } модуль.экспорт = { проверитьЕслиМобайлЭксистс, зарегистрировать пользователя, getUserByMobile, getAllShopUsers, }; и код authController.js:71:39)
const shopModel = require('../models/shopModel'); const bcrypt = require('bcryptjs'); const fs = require('fs'); // Требуем модуль 'fs' // Регистрируем нового пользователя для веб-приложения и мобильного приложения Exports.registerUser = async (req, res) => { const {имя, мобильный телефон, пароль} = req.body; console.log('Имя:', имя); console.log('Мобильный:', mobile); console.log('Пароль:', пароль); пытаться { // Проверяем, зарегистрирован ли уже номер мобильного телефона constexistUser = await shopModel.checkIfMobileExists(mobile); если (existingUser.length > 0) { return res.status(400).json({ message: «Мобильный номер уже существует» }); } // Хешируем пароль перед его сохранением const hashedPassword = ожидайте bcrypt.hash(пароль, 10); // Вставляем пользователя в базу данных ждут shopModel.registerUser(имя, мобильный телефон, hashedPassword); // Сохраняем данные req.body в файл журнала fs.appendFileSync('registration.log', JSON.stringify(req.body) + '\n'); res.status(201).json({ message: «Регистрация успешна» }); } поймать (ошибка) { console.error('Ошибка при регистрации:', error); res.status(500).json({ message: «Внутренняя ошибка сервера» }); } }; // Вход пользователя для веб-приложения и мобильного приложения Exports.loginUser = async (req, res) => { const {мобильный телефон, пароль} = req.body; пытаться { // Получение данных пользователя по номеру мобильного телефона const user = ждут shopModel.getUserByMobile(mobile); если (user.length === 0) { return res.status(400).json({ message: 'Пользователь не найден' }); } const hashedPassword = пользователь[0].пароль; // Сравниваем предоставленный пароль с хешированным паролем const isMatch = ждут bcrypt.compare(пароль, hashedPassword); если (!isMatch) { return res.status(401).json({ message: «Ошибка аутентификации» }); } // Пользователь аутентифицирован res.status(200).json({ message: «Вход успешен», user: user[0] }); } поймать (ошибка) { console.log('Ошибка при входе в систему:', error); // Регистрируем конкретную ошибку res.status(500).json({ message: «Внутренняя ошибка сервера» }); } }; // Получаем список всех пользователей магазина Exports.getAllShopUsers = async (req, res) => { пытаться { // Извлекаем всех пользователей магазина из базы данных const shopUsers = ждут shopModel.getAllShopUsers(); res.status(200).json(shopUsers); } поймать (ошибка) { console.log('Ошибка в getAllShopUsers:', ошибка); // Регистрируем конкретную ошибку res.status(500).json({ message: «Внутренняя ошибка сервера» }); } }; config/database.js
const mysql = require('mysql2/promise'); константный путь = требуется ('путь'); const dotenv = require('dotenv'); // Вычисляем абсолютный путь к файлу .env в корневом каталоге const envPath = path.resolve(__dirname, '../.env'); // Загружаем переменные среды из разрешенного пути dotenv.config({путь: envPath}); const createPool = async () => { пытаться { const пул = mysql.createPool({ хост: процесс.env.DATABASE_HOST, пользователь: процесс.env.DATABASE_USER, пароль: процесс.env.DATABASE_PASSWORD, база данных: процесс.env.DATABASE, waitForConnections: правда, лимит соединения: 10, ОчередьЛимит: 0 }); console.log(process.env.DATABASE_HOST) console.log(process.env.DATABASE_USER) console.log(process.env.DATABASE_PASSWORD) console.log(process.env.DATABASE_HOST) console.log('База данных подключена!'); возвратный пул; } поймать (ошибка) { console.error('Ошибка подключения к базе данных:', error); ошибка выброса; } }; модуль.экспорт = { создать пул };
Node js Вход и регистрация REST API с ошибкой базы данных MySQL, пожалуйста, помогите
Начало запуска npm
начать nodemon app.js
[узел] 3.0.1 [nodemon] для перезапуска в любой момент введите rs
[nodemon] путь(и) просмотра: . [nodemon] просмотр расширений: js,mjs,cjs,json [nodemon] запускает node app.js
Ошибка при регистрации: TypeError: невозможно прочитать свойства неопределенного значения (чтение «запроса») в D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\models\shopModel.js:7:8 в новом обещании () в Object.checkIfMobileExists (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\models\shopModel.js:5:10) в экспорте.registerUser (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\controllers\authController.js:15:42) в Layer.handle [как handle_request] (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\layer.js:95:5) в следующий раз (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\route.js:144:13) в Route.dispatch (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\route.js:114:3) в Layer.handle [как handle_request] (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\layer.js:95:5) в D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\index.js:284:15 в Function.process_params (D:\NiketGroup-Xampp\htdocs@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\index.js:346:12)
пожалуйста, помогите.
Код shopModel.js:32:6)
const { db } = require('../config/database'); // Проверяем, зарегистрирован ли уже номер мобильного телефона функция checkIfMobileExists(мобильный) { вернуть новое обещание((разрешить, отклонить) => { const query = 'SELECT * FROM shop_users WHERE mobile = ?'; db.query(query, [mobile], (ошибка, результат) => { если (ошибка) { отклонить (ошибка); } еще { решить (результат); } }); }); } // Регистрируем нового пользователя по номеру мобильного телефона функция RegisterUser(имя, мобильный телефон, пароль, обратный вызов) { if (обратный вызов typeof !== 'function') { return Promise.reject(new Error('Неверная функция обратного вызова 1')); } const query = 'INSERT INTO shop_users (имя, мобильный телефон, пароль) ЗНАЧЕНИЯ (?, ?, ?)'; returnpool.query(запрос, [имя, мобильный телефон, пароль]) .then(() => { если (обратный вызов) { обратный вызов (ноль); } }) .catch((ошибка) => { если (обратный вызов) { обратный вызов (ошибка); } }); } // Получение данных пользователя по номеру мобильного телефона функция getUserByMobile (мобильный, обратный вызов) { const query = 'SELECT * FROM shop_users WHERE mobile = ?'; пул.запрос(запрос, [мобильный]) .then(([result]) => обратный вызов(null, result)) .catch((ошибка) => обратный вызов(ошибка, ноль)); } // Получаем список всех пользователей магазина из базы данных функция getAllShopUsers (обратный вызов) { const query = 'SELECT * FROM shop_users'; пул.запрос (запрос) .then(([result]) => обратный вызов(null, result)) .catch((ошибка) => обратный вызов(ошибка, ноль)); } модуль.экспорт = { проверитьЕслиМобайлЭксистс, зарегистрировать пользователя, getUserByMobile, getAllShopUsers, }; и код authController.js:71:39)
const shopModel = require('../models/shopModel'); const bcrypt = require('bcryptjs'); const fs = require('fs'); // Требуем модуль 'fs' // Регистрируем нового пользователя для веб-приложения и мобильного приложения Exports.registerUser = async (req, res) => { const {имя, мобильный телефон, пароль} = req.body; console.log('Имя:', имя); console.log('Мобильный:', mobile); console.log('Пароль:', пароль); пытаться { // Проверяем, зарегистрирован ли уже номер мобильного телефона constexistUser = await shopModel.checkIfMobileExists(mobile); если (existingUser.length > 0) { return res.status(400).json({ message: «Мобильный номер уже существует» }); } // Хешируем пароль перед его сохранением const hashedPassword = ожидайте bcrypt.hash(пароль, 10); // Вставляем пользователя в базу данных ждут shopModel.registerUser(имя, мобильный телефон, hashedPassword); // Сохраняем данные req.body в файл журнала fs.appendFileSync('registration.log', JSON.stringify(req.body) + '\n'); res.status(201).json({ message: «Регистрация успешна» }); } поймать (ошибка) { console.error('Ошибка при регистрации:', error); res.status(500).json({ message: «Внутренняя ошибка сервера» }); } }; // Вход пользователя для веб-приложения и мобильного приложения Exports.loginUser = async (req, res) => { const {мобильный телефон, пароль} = req.body; пытаться { // Получение данных пользователя по номеру мобильного телефона const user = ждут shopModel.getUserByMobile(mobile); если (user.length === 0) { return res.status(400).json({ message: 'Пользователь не найден' }); } const hashedPassword = пользователь[0].пароль; // Сравниваем предоставленный пароль с хешированным паролем const isMatch = ждут bcrypt.compare(пароль, hashedPassword); если (!isMatch) { return res.status(401).json({ message: «Ошибка аутентификации» }); } // Пользователь аутентифицирован res.status(200).json({ message: «Вход успешен», user: user[0] }); } поймать (ошибка) { console.log('Ошибка при входе в систему:', error); // Регистрируем конкретную ошибку res.status(500).json({ message: «Внутренняя ошибка сервера» }); } }; // Получаем список всех пользователей магазина Exports.getAllShopUsers = async (req, res) => { пытаться { // Извлекаем всех пользователей магазина из базы данных const shopUsers = ждут shopModel.getAllShopUsers(); res.status(200).json(shopUsers); } поймать (ошибка) { console.log('Ошибка в getAllShopUsers:', ошибка); // Регистрируем конкретную ошибку res.status(500).json({ message: «Внутренняя ошибка сервера» }); } }; config/database.js
const mysql = require('mysql2/promise'); константный путь = требуется ('путь'); const dotenv = require('dotenv'); // Вычисляем абсолютный путь к файлу .env в корневом каталоге const envPath = path.resolve(__dirname, '../.env'); // Загружаем переменные среды из разрешенного пути dotenv.config({путь: envPath}); const createPool = async () => { пытаться { const пул = mysql.createPool({ хост: процесс.env.DATABASE_HOST, пользователь: процесс.env.DATABASE_USER, пароль: процесс.env.DATABASE_PASSWORD, база данных: процесс.env.DATABASE, waitForConnections: правда, лимит соединения: 10, ОчередьЛимит: 0 }); console.log(process.env.DATABASE_HOST) console.log(process.env.DATABASE_USER) console.log(process.env.DATABASE_PASSWORD) console.log(process.env.DATABASE_HOST) console.log('База данных подключена!'); возвратный пул; } поймать (ошибка) { console.error('Ошибка подключения к базе данных:', error); ошибка выброса; } }; модуль.экспорт = { создать пул };
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как пройти аутентификацию для FCM Rest API с помощью Google REST API в PHP REST API?
Anonymous » » в форуме Php - 0 Ответы
- 158 Просмотры
-
Последнее сообщение Anonymous
-