#以上是目錄結構,路由如下:
const router = require('koa-router')();
const views = require('koa-views');
router.use(views(__dirname + '/views'));
router.get('/', async (ctx, next) => {
await ctx.render('index');
});
module.exports = router;
以上運行,會報以下錯誤:
#於是我將關於路徑那句改成
router.use(views(__dirname + '../views'));
報錯訊息變成
#很無奈的,改成這樣就能運行了:
router.use(views(__dirname + '/../views'));
#現在是正常了,但這樣顯然是不合理的,請問該怎麼改呢?
順手貼出index.js的程式碼:
const Koa = require('koa');
const router = require('./routes/routes');
const app = new Koa();
// log request URL:
app.use(async (ctx, next) => {
console.log(`Process ${ctx.request.method} ${ctx.request.url}...`);
await next();
});
// add router middleware:
app.use(router.routes());
app.listen(3000);
console.log('app started at port 3000...');
謝謝!
淡淡烟草味2017-06-28 09:27:34
你的routes.js
檔案是在/Users/dark/Works/drip-file/routes
資料夾下的,所以__dirname
的值就是/Users/dark/Works/drip-file/routes
,__dirname + '/views'
就等於/Users/dark/Works/drip-file/routes/views
,所以存取index文件的時候就會去這個資料夾下面尋找,所以找不到。
當你改成__dirname+'/../views'
的時候,就會去/Users/dark/Works/drip-file/views
這個資料夾下尋找了,所以能找到。
如果想改成__dirname+'/views'
,如果沒有單獨建一個routes
資料夾的必要,就把routes.js檔案拿到和index.js檔案同一個資料夾吧。