2017-04-07 57 views
0

我正在學習節點之後有一個[對象未定義]和我在我的index.js兩個Get請求Route.get()需要回調函數,但使用兩個get請求

var express = require('express'); 
 
var router = express.Router(); 
 

 

 
router.get('/', function(req, res, next) { 
 
    res.status(200) 
 
     .json({ 
 
     status: 'success', 
 
     message: 'Welcome to EverestApi!' 
 
     }); 
 
}); 
 

 

 

 
var db = require('./queries'); 
 

 
router.get('/api/users', db.getAllUsers); 
 
router.get('/api/pref', db.getAllPref); 
 

 

 
module.exports = router;

我query.js

var promise = require('bluebird'); 
 

 
var options ={ 
 
    promiseLib : promise 
 
}; 
 

 
var pgp = require('pg-promise')(options); 
 
var db = pgp({ 
 
    host: 'localhost', 
 
    port: 5432, 
 
    database: 'nari', 
 
    user: 'postgres', 
 
    password: 'pes' 
 
}); 
 

 

 
function getAllUsers(req, res, next) { 
 
    db.any('SELECT * FROM office.users') 
 
    .then(function (data) { 
 
     res.status(200) 
 
     .json({ 
 
      status: 'success', 
 
      data: data, 
 
      message: 'Retrieved all users' 
 
     }); 
 
    }) 
 
    .catch(function (err) { 
 
     return next(err); 
 
    }); 
 
} 
 

 

 
function getAllPref(req, res, next){ 
 
    db.any('SELECT * FROM core.preferences') 
 
    .then(function(data){ 
 
     res.status(200) 
 
     .json({ 
 
      status: 'success', 
 
      data : data, 
 
      message : 'Retrieved all preferences' 
 
     }); 
 
    }) 
 
     .catch(function(err){ 
 
      return next(err); 
 
     }); 
 
    
 
} 
 

 

 
module.exports ={getAllUsers: getAllUsers}; 
 
module.exports={getAllPref : getAllPref};

我在這裏有兩個GET Action。一個getAllUsers()和另一個getAllPref()。啓動服務器會給出錯誤。

D:\node-postgress-promises\node_modules\express\lib\router\route.js:202 throw new Error(msg); ^

錯誤:Route.get()需要回調函數,但在路線(匿名函數)作爲GET(d得到了[對象未定義] :\節點postgress-承諾\ node_modules \表現\ (匿名函數)[as get](D:\ node-postgress-promises \ node_modules \ express \ lib \ router \ index.js:510:lib \ router \ route.js:202:15) at Function.proto。 19) at Object。 (module.js:409:26) at Object.Module._extensions..js(module.js:416)(D:\ node-postgress-promises \ api \ index.js:17:8) at Module._compile (module.js:343:32) at Module.require(module.js:353:17) at要求在Module.load(module.js:343:32) 處的Function.Module._load(module.js:300:12) (internal/module.js:12:17) at Object。 (module.js:409:26) at Object.Module._extensions..js(module.js:416:10)(D:\ node-postgress-promises \ server.js:6:11) at Module._compile )Module.load(module.js:343:32) at Function.Module._load(module.js:300:12) at Function.Module.runMain(module.js:441:10) 在啓動時(node.js:139:18)

如果我評論上述路線之一例如。 router.get('/ api/users',db.getAllUsers); 我得到的response..Any幫助please..I知道這是幼稚的,但我仍然在學習,如果太naive.Thank你

回答

1
在query.js

出口很新的this.Pardon功能在一個對象中

module.exports = { 
    getAllUsers: getAllUsers, 
    getAllPref: getAllPref, 
} 
+0

謝謝先生:) Jai尼泊爾。:) – OLDMONK

+0

哈哈,Jai尼泊爾先生。 –

+0

完成了先生。:),我很高興ki節點ko lagi我有一個人從這裏。:)快樂新年在Advance.Cheers .;) – OLDMONK

相關問題