학습 연습으로 node.js에 라우터를 만들려고합니다. 이것은 재사용이 가능합니다. 내 라우터의 파일 구조는 다음과 같습니다Node.js : require() 및 MODULE_NOT_FOUND
- /MyProject를
- 는
- /경로
- 하는 index.js
- about.js 을 app.js
- /모듈
- /rout 어
- router.js app.js에서
- /rout 어
, 나는 라우터 개체를 만들고, 내 루트 폴더에에게 경로를 전달합니다
var Router = require('./modules/router/router');
var router = new Router('./routes');
라우터 객체의 생성자 내에서 객체에 전달 된 경로에서 파일 이름을 배열에로드하고 객체에 객체를 추가하려고합니다 요법 모듈로 :
var fs = require('fs');
var routes = {}
var routesFolder;
function Router(routesPath){
this.routesFolder = routesPath;
fs.readdir(this.routesFolder, this.loadRoutes);
}
Router.prototype.loadRoutes(err, files){
for (var i=0;i<files.length;i++){
var c = files[i].split('.');
if(c[1] === 'js'){
try{
var t = require(routesFolder + '/' + c[0]);
routes['/' + c[0]] = t[c[0]];
}
catch(err){
console.log('Error parsing file: ' + files[i];
console.log(err);
}
}
}
}
내하는 index.js 및 about.js 파일은 다음과 같이 : 나는 실행
exports.index = function(req, res){
// Some code here
}
''노드는 app.js ', 나는 라우터 개체를 전달 ./ routes '를 경로 경로로 사용합니다. 파일 이름은 잘로드,하지만 내 콘솔 출력은 : 나는 몇 가지 다른 방법으로 내 루트 파일을 변경하려고했습니다
Error parsing: index.js
{ [Error: Cannot find module './routes/index'] code: 'MODULE_NOT_FOUND' }
Error parsing: about.js
{ [Error: Cannot find module './routes/about'] code: 'MODULE_NOT_FOUND' }
:
module.exports = function(){...}
module.exports.index = function(){...}
하지만이 효과가 없습니다. 노드에 대해 이해하고 필요로하는 것부터 시작해야합니다. 나는 약간의 초보자이기 때문에 만약이 문제가 어리석은 것이라면 용서해주십시오.
해결했습니다. 나는이 문제가 경로 참조와 관련이 있다고 추측했지만, 나는 그 둘 모두가 동일한 방식으로 처리 된 참조를 요구한다고 가정하고 있었다. – aerook