Problème express.js non actif

#1
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
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": ""
}
server.js
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);
app.js
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;
routes/user.js
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;
controllers/user.js

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' });
};
 
#4
j'ai refais l'installation complète en suivant scrupuleusement la notice.

1 : Configuration de l’application.
2 : Résultat : It Works !
3 : Ajouter la configuration de l’application au fichier app.js.
4 : Résultat : Hello World! nodeJS.
5 : Création du package.json.
6 : Saisisse de la commande d'activation (en ssh).
7 : installation d'express.js

je n'ai importé aucuns fichier externe. j'ai coder en direct une route simple metohd GET qui revoie message json sur le fichier app.js.

app.js
JavaScript:
const http = require('http');
const express = require('express');
const port = '127.0.0.1';
const hostname : 'passenger';

const app = express();

app.use((req, res) => {
    res.status(200).json({ message: 'ma route méthode GET' });
});

const server = http.createServer(app);

server.listen(port, hostname, ()=>{
    console.log(`server running`);
});
sa fonctionne le json s'affiche sans problème.
JavaScript:
app.use((req, res) =>{
       res.status(200).json(message: 'ma route');
});
le json ne s'affiche pas
JavaScript:
app.use('/api', (req, res) =>{
       res.status(200).json(message: 'ma route')
});
le json ne s'affiche pas
JavaScript:
app.get('/api', (req, res) =>{
       res.status(200).json(message: 'ma route')
});
 
Dernière édition:
Haut