1. 程式人生 > >[校園卡APP]-後臺模組抽取路由過程中的錯誤處理(1)

[校園卡APP]-後臺模組抽取路由過程中的錯誤處理(1)

報錯

Starting child process with 'node app.js'
/home/lantern/Code/Project/WebstormProjects/CampusAppBackstage/CampusBack/CampusBack/node_modules/express/lib/router/index.js:458
      throw new TypeError('Router.use() requires middleware function but got a ' + gettype(fn));
      ^

TypeError: Router.use() requires middleware function
but got a Object at Function.use (/home/lantern/Code/Project/WebstormProjects/CampusAppBackstage/CampusBack/CampusBack/node_modules/express/lib/router/index.js:458:13) at EventEmitter.<anonymous> (/home/lantern/Code/Project/WebstormProjects/CampusAppBackstage/CampusBack/CampusBack/node_modules/express/lib/application.js:219
:21) at Array.forEach (native) at EventEmitter.use (/home/lantern/Code/Project/WebstormProjects/CampusAppBackstage/CampusBack/CampusBack/node_modules/express/lib/application.js:216:7) at Object.<anonymous> (/home/lantern/Code/Project/WebstormProjects/CampusAppBackstage/CampusBack/CampusBack/app.js:54:5
) at Module._compile (module.js:435:26) at Object.Module._extensions..js (module.js:442:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:313:12) at Function.Module.runMain (module.js:467:10) at startup (node.js:136:18) at node.js:963:3 Program node app.js exited with code 1
  1. 嘗試修復 在app.js中有
//在 app.js 中通過 require 載入了 index.js 然後通過 routes(app) 呼叫了 index.js 匯出的函式。
var routes = require('./routes/index');
var feedback_and_reply = require('./routes/feedback-and-reply');
  1. routers/index.js中有

    module.exports = router;

  2. 但是在routers/feedback-and-reply.js中沒有這樣的語句

  3. routers/feedback-and-reply.js中新增

    modules.export = feedback-and-reply

  4. 報錯

/home/lantern/Code/Project/WebstormProjects/CampusAppBackstage/CampusBack/CampusBack/routes/feedback-and-reply.js:35
module.exports = feedback-and-reply;
                 ^
ReferenceError: feedback is not defined
    at Object.<anonymous> (/home/lantern/Code/Project/WebstormProjects/CampusAppBackstage/CampusBack/CampusBack/routes/feedback-and-reply.js:35:18)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/home/lantern/Code/Project/WebstormProjects/CampusAppBackstage/CampusBack/CampusBack/app.js:10:26)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Function.Module.runMain (module.js:467:10)
    at startup (node.js:136:18)
    at node.js:963:3
Program node app.js exited with code 1
  1. 發現在index,js 中的module.exports = router; 之前有一句話var router = Express.Router();,修改 routers/feedback-and-reply.js最後新增一句:
# 將在feedback-and-reply.js中新增的路由匯出,使得外界可以呼叫router物件
module.exports = router;
  1. 具體的呼叫在app.js
//在 app.js 中通過 require 載入了 index.js 
var routes = require('./routes/index');
var feedback_and_reply = require('./routes/feedback-and-reply');
// 給專案新增路由
app.use('/', routes);
app.use('/', feedback_and_reply);
//app.use('/feedback-and-reply',feedback_and_reply);
// 不知道為什麼,上面註釋的寫法無效,無法訪問 localhost:1235/feedback-and-reply