Node.js => TypeError: невозможно прочитать свойства неопределенного значения (чтение «запроса») ⇐ Javascript
-
Гость
Node.js => TypeError: невозможно прочитать свойства неопределенного значения (чтение «запроса»)
Ошибка в getAllShopUsers: TypeError: невозможно прочитать свойства неопределенного значения (чтение «запроса») в Object.getAllShopUsers (D:\NiketGroup-Xampp\htdocs\@Tailwind-CSS\Admin-Panel\models\shopModel.js:32:6) в Exports.getAllShopUsers (D:\NiketGroup-Xampp\htdocs\@Tailwind-CSS\Admin-Panel\controllers\authController.js:71:39) в 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) в следующий раз (D:\NiketGroup-Xampp\htdocs\@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\index.js:280:10) в Function.handle (D:\NiketGroup-Xampp\htdocs\@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\index.js:175:3) Это не работает; пожалуйста, помогите.
Код shopModel.js:32:6)
// Импортируем соединение с базой данных из app.js const {db} = require('../config/database'); // Проверяем, зарегистрирован ли уже номер мобильного телефона функция checkIfMobileExists(мобильный, обратный вызов) { const query = 'SELECT * FROM shop_users WHERE mobile = ?'; db.query(query, [mobile], (ошибка, результат) => { обратный вызов (ошибка, результат); }); } // Регистрируем нового пользователя по номеру мобильного телефона функция RegisterUser(имя, мобильный телефон, пароль, обратный вызов) { const query = 'INSERT INTO shop_users (имя, мобильный телефон, пароль) ЗНАЧЕНИЯ (?, ?, ?)'; db.query(query, [имя, мобильный телефон, пароль], (ошибка) => { обратный вызов (ошибка); }); } // Получение данных пользователя по номеру мобильного телефона функция getUserByMobile (мобильный, обратный вызов) { const query = 'SELECT * FROM shop_users WHERE mobile = ?'; db.query(query, [mobile], (ошибка, результат) => { обратный вызов (ошибка, результат); }); } // Получаем список всех пользователей магазина из базы данных функция getAllShopUsers (обратный вызов) { const query = 'SELECT `ID`, `SHOP_ID`, `NAME`, `MOB`, `ALT_MOB`, `SHOP_NAME`, `ADDR`, `GST_NO`, `PAN_NO`, `LANG`, `STS`, ` DT`, `INVOICE_PREFIX`, `INVOICE_LOGO`, `PWD` FROM `shop_users` WHERE 1'; db.query(запрос, (ошибка, результат) => { обратный вызов (ошибка, результат); }); } модуль.экспорт = { проверитьЕслиМобайлЭксистс, зарегистрировать пользователя, 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.log('Ошибка при регистрации:', error); // Регистрируем конкретную ошибку res.status(500).json({ message: «Внутренняя ошибка сервера 1» }); } }; // Вход пользователя для веб-приложения и мобильного приложения 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: «Внутренняя ошибка сервера» }); } };
Ошибка в getAllShopUsers: TypeError: невозможно прочитать свойства неопределенного значения (чтение «запроса») в Object.getAllShopUsers (D:\NiketGroup-Xampp\htdocs\@Tailwind-CSS\Admin-Panel\models\shopModel.js:32:6) в Exports.getAllShopUsers (D:\NiketGroup-Xampp\htdocs\@Tailwind-CSS\Admin-Panel\controllers\authController.js:71:39) в 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) в следующий раз (D:\NiketGroup-Xampp\htdocs\@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\index.js:280:10) в Function.handle (D:\NiketGroup-Xampp\htdocs\@Tailwind-CSS\Admin-Panel\node_modules\express\lib\router\index.js:175:3) Это не работает; пожалуйста, помогите.
Код shopModel.js:32:6)
// Импортируем соединение с базой данных из app.js const {db} = require('../config/database'); // Проверяем, зарегистрирован ли уже номер мобильного телефона функция checkIfMobileExists(мобильный, обратный вызов) { const query = 'SELECT * FROM shop_users WHERE mobile = ?'; db.query(query, [mobile], (ошибка, результат) => { обратный вызов (ошибка, результат); }); } // Регистрируем нового пользователя по номеру мобильного телефона функция RegisterUser(имя, мобильный телефон, пароль, обратный вызов) { const query = 'INSERT INTO shop_users (имя, мобильный телефон, пароль) ЗНАЧЕНИЯ (?, ?, ?)'; db.query(query, [имя, мобильный телефон, пароль], (ошибка) => { обратный вызов (ошибка); }); } // Получение данных пользователя по номеру мобильного телефона функция getUserByMobile (мобильный, обратный вызов) { const query = 'SELECT * FROM shop_users WHERE mobile = ?'; db.query(query, [mobile], (ошибка, результат) => { обратный вызов (ошибка, результат); }); } // Получаем список всех пользователей магазина из базы данных функция getAllShopUsers (обратный вызов) { const query = 'SELECT `ID`, `SHOP_ID`, `NAME`, `MOB`, `ALT_MOB`, `SHOP_NAME`, `ADDR`, `GST_NO`, `PAN_NO`, `LANG`, `STS`, ` DT`, `INVOICE_PREFIX`, `INVOICE_LOGO`, `PWD` FROM `shop_users` WHERE 1'; db.query(запрос, (ошибка, результат) => { обратный вызов (ошибка, результат); }); } модуль.экспорт = { проверитьЕслиМобайлЭксистс, зарегистрировать пользователя, 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.log('Ошибка при регистрации:', error); // Регистрируем конкретную ошибку res.status(500).json({ message: «Внутренняя ошибка сервера 1» }); } }; // Вход пользователя для веб-приложения и мобильного приложения 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: «Внутренняя ошибка сервера» }); } };
Мобильная версия