J'essaye de créer une API qui sera utilisée sur mon front.
J'utilise ExpressJs
comme NodeJS
cadre pour le serveur et RethinkDB
comme base de données.
Je rencontre un problème lors de l'appel API. Toujours recevoir des messages dans ma console après chaque appel d'API.
Création de l'API ExpressJs + RethinkDB
Erreur: Someone asked for the nonwhitelisted file "https://stackoverflow.com/users/". If this should be accessible, add it to the static web assets.
Mon entrypoint 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);
});
itinéraires API. Fichier utilisé dans server.js
comme const users = require('./routes/users');
pour 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;