HTTP POST n'obtenant aucune réponse. Je ne vois aucune réponse dans l'outil de développement. Quel est le problème dans le code. S'il vous plaît aider. Comment obtenir la réponse de l'API et ajouter le nouvel enregistrement à la liste.Node.js Restfull API utilisant SQLlite ne fonctionne pas avec Angular 2 HTTP post
fort texte // MY API REST CODE: // Mettez ces déclarations avant de définir les routes.
var express = require('express');
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('app_data/SocBillSys.db');
var bodyParser = require('body-parser');
var app=express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(allowCrossDomain);
// Ceci autorise tout serveur d'API d'accès au domaine.
function allowCrossDomain(req, res, next){
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS,
PUT, PATCH, DELETE'); // If needed
res.setHeader('Access-Control-Allow-Headers', 'X-Requested- With,contenttype'); // If needed
res.setHeader('Access-Control-Allow-Credentials', true); // If needed
next();
}
// INSERT RECORD
app.post('/db/society', function(req,res)
{
db.run("INSERT INTO society (name, type, address, city, state, pincode) VALUES (?,?,?,?,?,?)",
[ req.body.name,
req.body.type,
req.body.address,
req.body.city,
req.body.state,
req.body.pincode ]
,
function(error,response)
{
if (error == null)
res.status(202).json({"id": this.lastID});
else
res.status(500).send(error.message);
});
});
app.listen(3000, function() {
console.log('NODE.JS WEB API SERVER is listening at port 3000...');
});
HTTP SERVICE ANGULAIRE CALL
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { ISociety } from '../Society/Society';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
@Injectable()
export class SocietyService {
constructor(private _http: Http){}
createSociety(society: ISociety): void{
let headers = new Headers({'Content-Type': 'application/json' });
let options = new RequestOptions({headers: headers});
this._http.post('http://localhost:3000/db/society', JSON.stringify(society), options)
.map(this.handleResponse)
.catch(this.handleError);
}
private handleResponse(res: Response) {
let body = res.json();
return body;
}
private handleError (error: Response | any) {
console.error(error.message || error);
return Observable.throw(error.message || error);
}
}
Je ne vois pas de différence entre votre code et mon code autre que 'X-Requested-With, Content-Type' mais ce n'est pas un problème. C'était juste mon problème de copier-coller. –
Merci Ayush pour votre solution. Je ne pouvais d'abord pas comprendre ce que vous avez corrigé, mais plus tard, je l'ai eu. J'apprécie ton aide –