您的位置:首頁技術文章
文章詳情頁

javascript - koa關于render時的路徑問題?

瀏覽:119日期:2023-05-06 17:14:19

問題描述

javascript - koa關于render時的路徑問題?

以上是目錄結構,路由如下:

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;

以上運行,會報如下錯誤:

javascript - koa關于render時的路徑問題?

于是我將關于路徑那句改成

router.use(views(__dirname + ’../views’));

報錯信息變成

javascript - koa關于render時的路徑問題?

很無奈的,改成這樣就能運行了:

router.use(views(__dirname + ’/../views’));

javascript - koa關于render時的路徑問題?

現在是正常了,但這樣顯然是不合理的,請問應該怎么改呢?

順手貼出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...’);

謝謝!

問題解答

回答1:

你的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文件同一個文件夾吧。

標簽: JavaScript
相關文章:
国产综合久久一区二区三区