2017-05-03 2 views
0

Assez novice pour créer des applications API et NodeJS. J'ai fait un fichier server.js qui a 2 voiesConfiguration du dossier de l'API NodeJS

app.get("/api/allinfo", function (req, res) { 
     code... 
} 
app.get("/api/geo", function (req, res) { 
     more code.. 
} 

structure de dossier en cours est

|-- node_modules 
|-- server.js 
|--package.json 

Le fichier server.js a tout ce qui s'y

//Initiallising node modules 
var express = require("express"); 
var bodyParser = require("body-parser"); 
var sql = require("mssql"); 
var app = express(); 

// Setting Base directory 
app.use(bodyParser.json()); 

//Setting up server 
var server = app.listen(process.env.PORT || 8080, function() { 
    var port = server.address().port; 
    console.log("App now running on port", port); 
}); 

//Initiallising connection string 
    var dbConfig = { 
    user: "XXX", 
    password: "XXX", 
    server: "XXX", 
    database: "XXX" 
    }; 

     //API'S 
//Get all the information we have about an address 
app.get("/api/allinfo", function (req, res) { 
    var query ='Select * from TABLE'; 
    executeQuery(res, query); 
}); 

//Function to connect to database and execute query 
var executeQuery = function (res, query) { 
    sql.connect(dbConfig, function (err) { 
     if (err) 
     console.log("Error while connecting database :- " + err); 
     else{ 
     // create Request object 
     var request = new sql.Request(); 
     // query to the database 
     request.query(query, function (err, result) { 
      if (err) { 
       console.log("Error while querying database :- " + err); 
       res.send(err); 
      } 
      else { 
        res.send(result) 
      } 
     }); 
    } 
}); 
} 

Comment réorganiser ceci dans une structure de dossier appropriée? Quels ajustements dois-je apporter au code pour que cela se produise?

+0

https://www.tutorialspoint.com/nodejs/nodejs_restful_api.htm –

Répondre

0

Vous devez séparer les différents modules du code source afin qu'ils soient lisibles et gérables. Voici ma structure de code -

foldername 
├── data 
├── devops 
├── scripts 
│ ├── deploy-production scripts 
│ ├── crons 
│ ├── db scripts 
└── src 
    ├── app -> init for logs/routes/dbs/engines 
    ├── package.json 
    ├── server.js -> the Server initlializer. 
    ├── common -> files that are used accross codebase 
    ├── routes -> contain various api endpoints 
    ├── db -> various db handlers and ORM's 
    └── data -> various ini/json/xml files used by codebase 

Hope this helps.

0

C'est la structure que j'utilise:

foldername 
    controllers 
    models 
    routes 
    utils 
    db 
    server.js 
    package.json 
    lib 
    config 
    middleware 
    scripts 
+0

Grand. @guruwinder un peu plus de détails comment server.js interagit avec ces dossiers –

+0

Tous les fichiers dans le dossier routes sont requis dans server.js par une fonction que j'ai écrite. Maintenant, chacun de ces fichiers de route charge leurs contrôleurs spécifiques qui à leur tour nécessitent leurs modèles. La configuration est injectée par un module de configuration. Le dossier DB contient tous les adaptateurs de base de données écrits pour extraire les différentes connexions de base de données dont nous avons besoin. Lib et utils contiennent des fonctions utilitaires communes ou des bibliothèques personnalisées que j'ai créées. Ceux-ci sont chargés au fur et à mesure des besoins. – guruwinder