2016-07-27 57 views
1

嗨,我是expressjs的新手。我有一個管理路線,我想管理員更新記錄等。我不想寫代碼更新記錄下的路線,而是我只是通過一些函數或對象,從數據庫獲取記錄或更新它們。我正在使用passportjs進行身份驗證。目前我的路線是這樣的 -從快遞路線的外部文件調用方法

app.get('/admin', function(req, res){ 

    res.render('admin', { 
     title: "Welcome Member_name ", 
     user: req.user 
    }); 
}); 

因此,我爲所有管理員操作創建了另一個js文件。下根/控制器/ admin.js和它的外觀像這樣的 -

var  mysql  = require('mysql'), 
    dbconfig = require('../config/database'), 
    connection = mysql.createConnection(dbconfig.connection); 

    module.exports = { 


    } 

什麼我後寫一些功能將會從數據庫中獲取一些數據並返回對象,這樣我可以傳遞對象到我的路線,從那裏到景色。任何人都可以幫助我嗎?謝謝。另外,如果你知道學習expressjs plz的最佳做法,請告訴我。提前致謝。乾杯。

回答

1

我會盡力爲你回答這個問題,雖然你的問題有點渾濁要理解。如果我是對的,你想從你的路線調用模塊中的一個方法?

讓我們說你的模塊文件被稱爲admin.js下面的例子。這就是你如何創建一個可在模塊外部訪問的方法。

admin.js

var mysql  = require('mysql'), 
    dbconfig = require('../config/database'), 
    connection = mysql.createConnection(dbconfig.connection); 

module.exports = {}; 

module.exports.retrieveData = function() { 
    //Data retrevial code here. 
}; 
在你的路由文件

然後,讓我們說routes.js的例子。這就是你如何調用該方法。

routes.js

var admin = require('./admin.js') //Remembering to require the module! 

database.retrieveData(); 

你會再通過在retrieveData()方法的參數傳遞查詢。

+0

module.exports.stockData =函數(){ \t stockRecord = connection.query( 「查詢這裏」,功能(ERR,行){ \t \t如果(ERR){ \t \t \t擲ERR; \t \t} \t \t如果(rows.length!){ \t \t \t的console.log( 「沒有找到記錄」); \t \t} \t \t else { \t \t \t return rows; \t \t} \t}); \t };我想要做的就是將結果返回給路線。道歉我對expressjs很陌生。 – jahid

+0

這是我到目前爲止所做的。我想要的只是將結果傳遞給路線,以便我可以獲取它們。 Plz看一看。 http://codepen.io/jahhidhaque/pen/QExzgY – jahid

+0

如果有'rows',你會想從'module.exports.stockData'方法返回行。然後,您可以在路線中的股票變量中訪問這些數據。請注意,如果行未找到,我也返回false。 https://jsfiddle.net/cjmjn3xa/ –