Bonjour à tous,
Je viens vers la communauté PH pour essayer de résoudre un problème lié à environnement node.js et au framework express.js.
Après avoir suivi toutes les instructions d’installation d'un environnement node (https://kb.n0c.com/knowledge-base/gestion-des-applications-node-js/) ,
J'ai importé une api de base très simple tester en local.
Mais voilà l’environnement node fonctionne très bien, mais ne prend pas en compte express.js.
Donc je n'ai accès aucune méthode express ,ce qui fait que mon api ne fonctionne pas. je me retrouve avec : Cannot GET /api/user.
Si quelqu'un a une idée d’où cela peut provenir je suis preneur.
Je vous remercie d'avance
package.json
server.js
app.js
routes/user.js
controllers/user.js
Je viens vers la communauté PH pour essayer de résoudre un problème lié à environnement node.js et au framework express.js.
Après avoir suivi toutes les instructions d’installation d'un environnement node (https://kb.n0c.com/knowledge-base/gestion-des-applications-node-js/) ,
J'ai importé une api de base très simple tester en local.
Mais voilà l’environnement node fonctionne très bien, mais ne prend pas en compte express.js.
Donc je n'ai accès aucune méthode express ,ce qui fait que mon api ne fonctionne pas. je me retrouve avec : Cannot GET /api/user.
Si quelqu'un a une idée d’où cela peut provenir je suis preneur.
Je vous remercie d'avance
package.json
JSON:
{
"name": "api",
"version": "1.0.0",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"express": "^4.17.1"
},
"devDependencies": {},
"description": ""
}
JavaScript:
const http = require('http');
const app = require('./app');
const normalizePort = val => {
const port = parseInt(val, 10);
if (isNaN(port)) {
return val;
}
if (port >= 0) {
return port;
}
return false;
};
const port = normalizePort(process.env.PORT || '3100');
app.set('port', port);
const errorHandler = error => {
if (error.syscall !== 'listen') {
throw error;
}
const address = server.address();
const bind = typeof address === 'string' ? 'pipe ' + address : 'port: ' + port;
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges.');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use.');
process.exit(1);
break;
default:
throw error;
}
};
const server = http.createServer(app); // https ajouté la const options au parametres de server
server.on('error', errorHandler);
server.on('listening', () => {
const address = server.address();
const bind = typeof address === 'string' ? 'pipe ' + address : 'port ' + port;
console.log('Listening on ' + bind);
});
server.listen(port);
JavaScript:
const express = require('express');
const bodyParser = require('body-parser');
const userRoutes = require('./routes/user');
const app = express();
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content, Accept, Content-Type, Authorization');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');
next();
});
app.use(bodyParser.json());
app.use('/user', userRoutes);
module.exports = app;
JavaScript:
const express = require('express');
const router = express.Router();
const UserCtrl = require('../controllers/user');
router.post('/', UserCtrl.createUser);
router.get('/', UserCtrl.displayUser);
router.put('/', UserCtrl.updateUser);
router.delete('/', UserCtrl.deleteUser);
module.exports = router;
JavaScript:
exports.createUser = (req, res, next) => {
res.status(201).json({ message: 'POST Votre compte a bien été Créer !!' });
};
exports.displayUser = (req, res, next) => {
res.status(201).json({ message: "GET voici les utilisateurs demandés" });
};
exports.deleteUser = (req, res, next) => {
return res.status(200).json({ message: 'DELETE l\'utilisateur a bien supprimé' });
};
exports.updateUser = (req, res, next) => {
res.status(201).json({ message: 'PUT l\'utilisateur a bien été mis a jour' });
};