[校園卡APP]-後臺模組抽取路由過程中的錯誤處理(1)
阿新 • • 發佈:2019-01-25
報錯
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
- 嘗試修復 在
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');
在
routers/index.js
中有module.exports = router;
但是在
routers/feedback-and-reply.js
中沒有這樣的語句在
routers/feedback-and-reply.js
中新增modules.export = feedback-and-reply
報錯
/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
- 發現在index,js 中的module.exports = router; 之前有一句話
var router = Express.Router();
,修改routers/feedback-and-reply.js
最後新增一句:
# 將在feedback-and-reply.js中新增的路由匯出,使得外界可以呼叫router物件
module.exports = router;
- 具體的呼叫在
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