C:\\Users\\User\\Desktop\\SIGCENSA\\backend\\node_modules\\router\\index.js:392
throw new TypeError('argument handler must be a function')
^
TypeError: argument handler must be a function
at Function.use (C:\\Users\\User\\Desktop\\SIGCENSA\\backend\\node_modules\\router\\index.js:392:13)
at Function.\ (C:\\Users\\User\\Desktop\\SIGCENSA\\backend\\node_modules\\express\\lib\\application.js:222:21)
at Array.forEach (\)
at Function.use (C:\\Users\\User\\Desktop\\SIGCENSA\\backend\\node_modules\\express\\lib\\application.js:219:7)
at Object.\ (C:\\Users\\User\\Desktop\\SIGCENSA\\backend\\app.js:37:5)
at Module.\_compile (node:internal/modules/cjs/loader
at Object..js (node:internal/modules/cjs/loader
at Module.load (node:internal/modules/cjs/loader
at Function.\_load (node:internal/modules/cjs/loader
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
< /code>
node.js v22.18.0
Это мой основной файл (app.js): < /p>
const express = require('express');
const path = require('path');
const dotenv = require('dotenv');
const mongoose = require('mongoose');
const { connectMSSQL } = require('./config/dbMSSQL');
const authRoutes = require('./routes/authRoutes');
const workerRoutes = require('./routes/workerRoutes');
const projectRoutes = require('./routes/projectRoutes');
const userRoutes = require('./routes/userRoutes');
const cors = require('cors');
const knowledgeFieldRoutes = require('./routes/knowledgeFieldRoutes');
dotenv.config();
const app = express();
const PORT = process.env.PORT || 3000;
// Middlewares
app.use(cors({
origin: 'http://localhost:5173',
credentials: true
}));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(express.static(path.join(__dirname, '../frontend')));
// Connections
connectMSSQL(); // SQL Server
require('./config/dbMongo')(); // MongoDB
// Routes
app.use('/api/auth', authRoutes);
app.use('/api/workers', workerRoutes);
app.use('/api/projects', projectRoutes);
app.use('/api/users', userRoutes);
app.use('/api/knowledge-fields', knowledgeFieldRoutes);
// Test route
app.get('/api', (req, res) => {
res.json({ message: 'API working' });
});
mongoose.connection.once('open', () => {
console.log('Connected to MongoDB');
app.listen(PORT, () => {
console.log(`Server running in http://localhost:${PORT}`);
});
});
mongoose.connection.on('error', (err) => {
console.error('MongoDB connection error:', err);
});
< /code>
Это Workercontroller: < /p>
const sql = require('mssql');
const { getMSSQLPool } = require('../config/dbMSSQL');
exports.getAllWorkers = async (req, res) => {
const { id } = req.params;
const pool = getMSSQLPool();
if (!pool) {
return res.status(503).json({ error: 'MS SQL is not available' });
}
try {
const result = await pool.request()
.input('id', id)
.query('SELECT * FROM RH_CENSA_2013 WHERE id = @id');
if (result.recordset.length === 0) {
return res.status(404).json({ message: 'Worker not found' });
}
res.json({name: result.recordset[0].name});
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Error getting worker' });
}
};
exports.searchWorkers = async (req, res) => {
const pool = getMSSQLPool();
const { q } = req.query;
if (!pool) {
return res.status(404).json({ message: 'MS SQL is not available' });
}
if (!q || q.length < 2) {
return res.status(400).json({ message: 'Consulta "q" debe tener al menos 2 caracteres' });
}
try {
const result = await pool.request()
.input('name', sql.VarChar, `%${q}%`)
.query('SELECT id, name FROM RH_CENSA_2013 WHERE name LIKE @name ORDER BY name');
res.json(result.recordset);
} catch (error) {
console.error('Error buscando trabajadores:', error);
res.status(500).json({ message: 'Error al buscar trabajadores' });
}
};
< /code>
И это мой файл рабочего дня: < /p>
const express = require('express');
// const workerController = require('../controllers/workerController');
const {getAllWorkers} = require('../controllers/workerController');
const {searchWorkers} = require('../controllers/workerController');
const router = express.Router();
// Rutas
router.get('/', getAllWorkers);
router.get('/search', searchWorkers);
module.exports = router;
< /code>
Ответы AI говорит, что я использую маршрутизатор модуля, который не поддерживается Express, что экспресс -установка не должна иметь никаких зависимостей с именем маршрутизатора, но каждый раз, когда я переустанавливаю Express в зависимости, появляется маршрутизатор. Несмотря на то, что я использую express.router (), я попробовал удалить маршрутизатор, но он продолжает появляться в зависимостях.
Как это исправить? < /P>
Подробнее здесь: https://stackoverflow.com/questions/797 ... pplication
Мобильная версия