2017-05-10 5 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に使用されるファイルは、解決策を見つけました。代わりlocalhost:28015(DBポート) のlocalhost:3000/(サーバポート)に要求を送信app.use('/', users);

  • app.use('/users', users);を変更28015
  • にDBポートを変更し

  • 関連する問題