2017-02-13 1 views
2

JS 작업과 내가 표현과 함께 노드 JS를 배우고 그리고 내가 rest.js노드 JS 고속 라우터

const http = require('http'); 
const express = require('express'); 
const widgetRouter = require('./rest/widgets'); 

const app1 = express(); 

const server = http.createServer(app1); 



app1.get('/api',widgetRouter); 


server.listen(3000,function(){ 
    console.log('server started in port 3000'); 

}); 



const app = express(); 

와 나는 또한 widgets.js가

을 제기 한 코드 다음 한 명시 적 라우팅을 배우는 없다
const express = require('express'); 

const widgetRouter = express.Router(); 

widgetRouter.route("/widgets") 
    .get(function(req,res){ 
     res.json({"abc":"hello"}); 
    }) 
    .post(); 

widgetRouter.route("/widgets/:widgetId") 
    .get() 
    .put() 
    .delete(); 



module.exports = widgetRouter; 

하지만 난 우체부에서 나머지 API를 (http://localhost:3000/api/widgets)을 테스트 할 때 그것은 말한다 얻을 수/API/위젯

답변

6

당신은 수입과 명시 적 초기화가 모듈을 사용하지만 서버를 시작하려면 http 모듈을 사용하십시오. 익스프레스 만 사용하십시오 :

또한 익스프레스 미들웨어 인 app.get('/api', widgetRouter) 대신 app.use('/api',widgetRouter)을 사용해야합니다.

const express = require('express'); 
const app = express(); 

const widgetRouter = require('./rest/widgets'); 

app.use('/api', widgetRouter); 
app.get('/', function(req, res) { 
    res.send('Home'); 
}); 

app.listen(3000, function(){ 
    console.log('server started in port 3000'); 
}); 
+0

내가 너무 한 내가 rest.js 에서 app1.listen로 시작하는 시도 것을 사용하지만 –

+0

@ujjwalsingh를 작동하지 않았다 widgets.js 당신에게 어떤 오류가 있습니까? 어쩌면 widgetRouter에 대한 요구가 잘못된 경로를 가지고 있거나, 아마도 여전히 두 개의 다른 Express 인스턴스 (app 및 app1)를 사용하고 있고 이들을 혼합하고 있습니다 (하나만 있어야합니다). – Tolen

1

시도해 볼 수도 있습니다.

rest.js

const express = require('express'); 
const http = require('http'); 
const router = express.Router(); 

const app = express(); 

require('./widgets')(app, router); 

app.get('/', function(req, res) { 
    res.send('Home'); 
}); 

app.listen(3000,function(){ 
    console.log('server started in port 3000'); 
}); 

module.exports = function(app, router){ 
    router.route("/widgets") 
     .get(function(req,res){ 
      res.json({"abc":"hello"}); 
     }) 
     .post(); 

    router.route("/widgets/:widgetId") 
     .get() 
     .put() 
     .delete(); 

    app.use('/api', router); 
}); 
+0

작동하지만 길은 있습니다. 복잡하고 초보자가 아닐 것 같다. –