2017-05-03 101 views
0

很適合製作API和NodeJS應用程序。我已經有2路NodeJS API文件夾設置

一個server.js文件
app.get("/api/allinfo", function (req, res) { 
     code... 
} 
app.get("/api/geo", function (req, res) { 
     more code.. 
} 

當前文件夾結構

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

的server.js文件中有它的一切

//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) 
      } 
     }); 
    } 
}); 
} 

如何重新排列這成一個適當的文件夾結構? 我需要對代碼進行哪些調整才能發生?

+0

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

回答

0

您必須分離出各種源代碼模塊,以便可讀和可管理。 這是我的代碼結構 -

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 

希望這會有所幫助。

0

這是我使用的結構:

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

大。 @guruwinder稍微詳細一點server.js如何與這些文件夾交互 –

+0

routes文件夾內的所有文件在server.js中都是我寫的函數所必需的。現在,這些路徑文件中的每一個都加載其特定的控制器,而這些控制器又需要它們的模型。 Config由配置模塊注入。數據庫文件夾包含所有用於抽象出我們需要的不同數據庫連接的數據庫適配器。 Lib和utils包含我創建的常用實用函數或自定義庫。這些會在需要時加載。 – guruwinder