“[SyntaxError: Unexpected end of input]” à l'Aide de Express pour Node.js

Le suivant fonctionne parfaitement bien pour moi:

app.get('/doi/meta/:doiName1/:doiName2', function(request, response) {

  var path = '/doi/json?doi='+request.params.doiName1+'/'+request.params.doiName2;

  //etc. 

Par exemple, je peux appeler:

curl -X GET http://localhost:1337/doi/meta/09.1010/9347426

et obtenir la réponse que j'attends. (Notez le nom de l'objet que je suis interrogation a un slash.)

Car il est possible de la variabilité dans les noms d'objet, j'ai besoin de modifier le serveur pour que je puisse la structure de mes requêtes comme ceci:

curl -X GET http://localhost:1337/doi/meta?doiName=09.1010/9347426

J'ai essayé de nombreuses approches, mais j'ai invariablement recevoir la réponse suivante:

[SyntaxError: Unexpected end of input]

qui me laisse croire que je suis à la recherche pour le problème dans le mauvais endroit. Cependant, je peux changer le serveur de code à la ci-dessus et il fonctionne très bien. Mon code ressemble à ceci:

app.get('/doi/meta', function(request, response) {

  //var path = '/doi/json?doi='+request.params.doiName1+'/'+request.params.doiName2;

  var args = url.parse(request.url, true).query;
  var path = 'doi/json?doi='+args['doiName'];
  console.log('path is '+path);

  //etc. 

La console.journal d'instruction n'est jamais atteint. Quel est le problème qui est à l'origine de cette Fin Inattendue de l'erreur de Saisie?

  • Pourquoi êtes-vous l'analyse request.url lorsque Exprimer le fait déjà pour vous? Les paramètres de la requête sont disponibles sur le req.query de l'objet.
InformationsquelleAutor Ellipsis17 | 2014-10-26