모든 라우팅 구성을 단일 개체로 간단하게 설정할 수 있습니까? 기본적으로 내가하고 싶은 것은 모든 경로가 포함 된 객체를 내보내는 routing.js 파일입니다. 모든 경로에 대해 express.get()을 사용하는 것은 평범한 일입니다.expressjs 라우팅 구성 객체?
2
A
답변
2
사실 내 경로에 대한 모든 파일을 보유하는 폴더가 있습니다 (개체별로 분할했습니다). 또한 컨트롤러를 파일로 분리합니다. 경로 파일은 다음과 같이 :
fs.readdir(__dirname + '/routes', function (err, files) {
if (err) throw err;
files.forEach(function (file) {
require('./routes/' + file)(app);
});
/**
* 500 page.
*/
app.use(function (err, req, res, next) {
if (err && err.status === 404) {
return next();
}
res.statusCode = 500;
res.render('404.html', {status: 500, url: req.url, error: ': ' + err.message});
});
/**
* 404 page.
*/
app.use(function (req, res, next) {
res.statusCode = 404;
res.render('404.html', {status: 404, url: req.url});
});
});
경우 :
내 app.js에서 다음/**
* Module dependencies.
*/
var controller = require('../controllers/index');
/**
* The API root for this object.
*/
var root = '/';
/**
* Route definitions.
*/
var routes = function (app) {
// get index
app.get(root, controller.getIndex);
};
/**
* Exports.
*/
module.exports = routes;
내가 자동으로 내 경로의 모든 파일을로드하고 (500) 및 (404) 경로를 구성하는이 작업을 수행 할 파일
require('./routes/' + file)(app);
이전에 정의 된 경로를 사용할 수 있습니다 :이 같은 파일에서 읽을 수 없다, 수입 부분이 라인입니다.
정확하게 생성 된 경로를 제어하기 위해이 방법을 사용합니다. 프로세스를 자동화하려면 https://github.com/visionmedia/express-resource을 사용할 수 있습니다.
이GET /forums -> index
GET /forums/new -> new
POST /forums -> create
GET /forums/:forum -> show
GET /forums/:forum/edit -> edit
PUT /forums/:forum -> update
DELETE /forums/:forum -> destroy
당신이 뭔가 더 간단, 당신은 할 수 원하는 경우 :
var express = require('express'),
Resource = require('express-resource'),
app = express.createServer();
app.resource('forums', require('./forum'));
자동으로 ./forum에 다음과 같은 기능을 가리 키 경로를 만들려면 :
이 당신이 할 수 있습니다 이렇게 ...
var getRoutes = [['/', controller.index], ['/post', controller.showPost]];
for (var i = 0, len= getRoutes.length; i < len; i++) {
var path = getRoutes[i][0];
var controller = getRoutes[i][1];
app.get(path, controller);
}
관련 문제
- 1. ExpressJs : 다른 환경의 구성 변수
- 2. Codeigniter의 라우팅 구성
- 3. 확장 expressjs res 속성
- 4. ExpressJS 설치
- 5. ExpressJS : Server.close();
- 6. expressjs 변수보기
- 7. 객체 구성 참조 - 양방향?
- 8. 검색을위한 파이썬 객체 구성
- 9. 잭슨 구성 객체
- 10. 클래스 디자인 : 구성 객체
- 11. Java OOP : 객체 트리/객체 패밀리 구성
- 12. angularJS는 라우팅 및 객체 지속성을 지원합니까?
- 13. expressjs 스트레스 테스트
- 14. Heroku + Node.js + MongoHQ + expressjs
- 15. node.js expressjs flashmessage ajax
- 16. Nodej Expressjs URI 문자
- 17. ExpressJS/Node ajax 로그인
- 18. ExpressJS 미들웨어 설정
- 19. expressjs mysql update error
- 20. ExpressJS 리디렉션 방법
- 21. 포트 Apache 및 ExpressJS
- 22. Expressjs mongolab이있는 Creud 데이터베이스
- 23. Nowjs expressjs 3.0
- 24. Expressjs/Node.js를 해당 PHP는
- 25. ExpressJS/Node : 404 이미지
- 26. Expressjs 보안 세션 쿠키
- 27. expressjs + mongoose + passportjs GithubStrategy
- 28. Expressjs 언어 라이브러리
- 29. ExpressJS - 외부 API에 문의
- 30. 라우팅 및 원격 액세스 구성 및 사용
이것은 좋지만 { '/', controller.index}와 같은 것을 찾고 있습니다. – LordZardeck
경로에 미들웨어를 추가하기 시작하면 곧 제한 될 것입니다. 게다가'get','post','update' 및'del'을 구별해야합니다. 그래서 당신은'app.post ('/', controller.index)'에서'{ 'post', '/', controller.index}'와 헬퍼 코드로 이동하려고합니다. 나는 경로를 등록 할 간단한 도우미를 포함하도록 내 응답을 업데이트했습니다. – Bill
기본적으로 그렇게하고 싶다면 기본적으로 통역사를 만들어야합니다. Express에는 기본 제공 기능이 없습니다. – LordZardeck