Je suis nouveau à nodejs/express et j'ai suivi un article de blog "Build Node.js RESTful APIs in 10 Minutes". Il a fourni des étapes détaillées pour créer des API simples REST. Après avoir terminé chaque code mentionné dans l'article, l'application n'a pas fonctionné correctement, il suffit de retournerPourquoi le middleware express remplace-t-il la réponse de mon API?
{
"url": "/transactions not found"
}
J'ai trouvé que le coupable était dans la dernière partie de l'article, qui m'a dit d'ajouter cette ligne à server.js:
Après avoir fait tout cela, que se passe-t-il si nous sommes entrés dans une mauvaise route? dire vous avez entré 'http://localhost:3000/task', Il répond par un message "Impossible de GET/tâche". Ajoutons un middleware explicite qui pourrait être utilisé pour renvoyer plus de messages interactifs.
app.use(function(req, res) {
res.status(404).send({url: req.originalUrl + ' not found'})
});
Il semble coder un code d'état HTTP 404, peu importe ce que fait mes déclarations api. Après avoir supprimé cette ligne, l'application renvoie une réponse significative.
Voici mon server.js:
var express = require('express'),
app = express(),
port = process.env.PORT || 3000,
mongoose = require('mongoose'),
Transaction = require('./api/models/transactionModel'), //created model loading here
bodyParser = require('body-parser');
// mongoose instance connection url connection
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/transactionDb');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(function(req, res) {
res.status(404).send({url: req.originalUrl + ' not found'})
});
var routes = require('./api/routes/transactionRoutes'); //importing route
routes(app); //register the route
app.listen(port);
console.log('Transaction List RESTful API server started on: ' + port);
Et le contrôleur:
'use strict';
var mongoose = require('mongoose'),
Transaction = mongoose.model('Transactions');
exports.list_all_transactions = function (req, res) {
Transaction.find({}, function (err, transaction) {
if (err)
res.send(err);
res.json(transaction);
});
};
exports.create_a_transaction = function (req, res) {
var new_transaction = new Transaction(req.body);
new_transaction.save(function (err, transaction) {
if (err)
res.send('Error creating a new transaction!');
res.json(transaction);
});
};