2016-07-27 17 views
1

こんにちは、私はexpressjsを初めて使っています。私は管理者のルートを持っています。管理者はレコードを更新するなどしています。ルートの下にある更新されたレコードにコードを書きたいのではなく、dbからレコードをフェッチするか、更新したオブジェクトを渡します。私は認証のためにパスポートを使用しています。現在私のルートはこのように見えます -エクスプレスルートでの外部ファイルからの呼び出し方法

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 = { 


    } 

私が後だと、私はオブジェクトを渡すことができるように、データベースからいくつかのデータを取得し、そのオブジェクトを返しますいくつかの機能を書くことです私のルートに、そこからビューに。誰も私を助けることができますPLZ?ありがとう。また、あなたがexpressjsを学ぶためのベストプラクティスを知っているなら、私に教えてください。ありがとうございます。乾杯。

答えて

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 IF(ERR){ \t \t \tスローERR; \t \t} \t \t(rows.length!){ \t \t \tはconsole.log( "レコードが見つかりません")であれば、 \t \t} \telse { \t \t \t return rows; \t \t} \t})。 \t };私がしたいのは、結果をルートに返すことだけです。私はexpressjsに非常に新しいです。 – jahid

+0

これは私がこれまで持っているものです。私が望むのは、その結果をルートに渡して、私がそれらをフェッチできるようにすることだけです。 Plzは見てみましょう。 http://codepen.io/jahhidhaque/pen/QExzgY – jahid

+0

行がある場合は、 'module.exports.stockData'メソッドから行を返すことをお勧めします。その後、あなたのルートの在庫変数でこのデータにアクセスします。行が見つからない場合はfalseも返すことに注意してください。 https://jsfiddle.net/cjmjn3xa/ –

関連する問題