2017-08-23 71 views
1

我試着去建立我的路線,然後包括將運行一個查詢需要的文件的路徑中運行一個查詢

app.get('/participants', function(req, res, next) { 
    var participants = require('./content/participants'); 
}); 

,然後參與者提交的「內容」文件:

const db = database.connect('olmsdb.1sserver.com', 'campyio'); 
db.raw('SELECT * FROM participants').then(function(results) { 
    res.setHeader('Content-Type', 'application/json'); 
    res.send(JSON.stringify(results)); 

    return results; 
    db.destroy(); 
}); 

這裏的目標是擊中/參與者路線,然後運行選擇查詢併發送查詢結果。

+0

呼叫return之後的'db.destroy()'不會做任何事情。 – SLaks

回答

0

require()在其他語言中不起作用,如source(..)execute。其中的代碼只在第一次需要時才執行一次。然後模塊被緩存。

您需要返回函數和類在一個模塊文件,使用module.exports

要做到這一點:

participants.js

const db = database.connect('olmsdb.1sserver.com', 'campyio'); 

exports.getParticipants = function() { 
    return db.raw('SELECT * FROM participants'); 
} 

app.js

var participants = require('./content/participants'); 

app.get('/participants', function(req, res, next) { 
    participants.getParticipants().then(function(results) { 
     res.setHeader('Content-Type', 'application/json'); 
     res.send(JSON.stringify(results)); 
     next(); 
    }); 
}); 
0

您需要將該代碼放在導出的函數中,以便每次收到請求時都可以使用請求&響應調用該代碼。

這意味着require()在您的路由處理程序中沒有任何意義。

+0

我該如何去做呢? – Charles

+0

@Charles:你會怎麼寫一個函數?瞭解Javascript語法的基礎知識。還要了解'exports'和Node/CommonJS模塊。 – SLaks