2017-05-03 133 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