2017-05-10 6 views
0

제 앞에서 사용할 API를 만들려고합니다.
ExpressJs을 서버의 경우 NodeJS 프레임 워크로 사용하고 데이터베이스로 RethinkDB을 사용하고 있습니다.
API 전화를 걸 때 문제가 있습니다. 모든 API 호출 후 항상 내 콘솔에서 메시지를받습니다.
ExpressJs + RethinkDB API 생성

오류 : Someone asked for the nonwhitelisted file "https://stackoverflow.com/users/". If this should be accessible, add it to the static web assets.

내 엔트리 포인트 server.js

'use strict' 

const express = require('express'); 
const logger = require('morgan'); 
const bodyParser = require('body-parser'); 
const cors = require('cors'); 
const helmet = require('helmet'); 
require('dotenv').config(); 

const app = express(); 

app.use(logger('dev')); 
app.use(bodyParser.urlencoded({ 
    extended: false 
})); 
app.use(bodyParser.json()); 
app.use(cors()); 
app.use(helmet()); 

const users = require('./routes/users'); 
const connect = require('./lib/connect'); 

app.use(connect.connect); 
app.use('/users', users); 
app.use(connect.close); 

app.use((error, request, response, next) => { 
    response.status(error.status || 500); 
    response.json({ 
     error: error.message 
    }); 
}); 

app.use((request, response, next) => { 
    let error = new Error('Not Found'); 
    error.status = 404; 
    response.json(error); 
}); 

var server = app.listen(3000, function() { 
    var host = server.address().address; 
    var port = server.address().port; 

    console.log('App is listening on http://%s:%s', host, port); 
}); 

API 노선. 파일 솔루션을 찾을 수 app.use('/users', users);

'use strict'; 

const r = require('rethinkdb'); 
const router = require('express').Router(); 
const connect = require('../lib/connect'); 

router.post('/users',(request, response) => { 
    let user = Object.assign({},{ 
     'email': request.body.email, 
     'name': request.body.name, 
     'password': request.body.password 
    }); 

    r.db('Planner').table('users') 
     .insert(user) 
     .run(request._rdb) 
     .then(cursor => cursor.toArray()) 
     .then(result => { 
      response.send(result) 
     }) 
     .catch(error => response.send(error)); 
}); 

router.get('/users', (request, response) => { 
    r.db('auth').table('users') 
     .run(request._rdb) 
     .then(cursor => cursor.toArray()) 
     .then(result => { 
      response.send(result); 
     }) 
     .catch(error => response.send(error)); 
}); 

router.put('/users/:user_id', (request, response) => { 
    let user_id = request.params.user_id; 

    r.db('auth').table('users') 
     .get(user_id) 
     .update({ 
      'email': request.body.email, 
      'name': request.body.name 
     }) 
     .run(request._rdb) 
     .then(cursor => cursor.toArray()) 
     .then(result => { 
      response.send(result); 
     }) 
     .catch(error => response.send(error)); 
}); 

router.delete('/users/:user_id', (request, response) => { 
    let user_id = request.params.user_id; 

    r.db('auth').table('users') 
     .get(user_id) 
     .delete() 
     .run(request._rdb) 
     .then(cursor => cursor.toArray()) 
     .then(result => { 
      response.send(result); 
     }) 
     .catch(error => response.send(error)); 
}); 

module.exports = router; 

답변

0

에 대한 const users = require('./routes/users');server.js에 사용됩니다.

  1. 변경 DB 포트 28015
  2. localhost:3000/는 (서버 포트)에 요청을 전송 app.use('/', users);
  3. 대신 localhost:28015 (DB 포트)로 변경됨 app.use('/users', users);