240 votes

Initialiseur de propriété abrégé invalide

J'ai écrit le code suivant en JavaScript pour un projet de noeud, mais j'ai rencontré une erreur lors du test d'un module. Je ne suis pas sûr de ce que l'erreur signifie. Voici mon code:

 var http = require('http');
// makes an http request
var makeRequest = function(message) {
 var options = {
  host: 'localhost',
  port = 8080,
  path : '/',
  method: 'POST'
 }
 // make request and execute function on recieveing response
 var request = http.request(options, function(response) {
  response.on('data', function(data) {
    console.log(data);
  });
 });
 request.write(message);
 request.end();
}
module.exports = makeRequest;
 

Lorsque j'essaie d'exécuter ce module, l'erreur suivante est générée:

 $ node make_request.js
/home/pallab/Desktop/make_request.js:8
    path = '/',
    ^^^^^^^^^^
SyntaxError: Invalid shorthand property initializer
    at Object.exports.runInThisContext (vm.js:76:16)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:509:3
 

Je ne comprends pas très bien ce que cela signifie et ce que je peux faire pour résoudre ce problème.

652voto

Diego Faria Points 3203

Parce que c'est un objet, le moyen d'assigner une valeur à ses propriétés est d'utiliser : .

Modifiez les = en : pour corriger l'erreur.

 var options = {
  host: 'localhost',
  port: 8080,
  path: '/',
  method: 'POST'
 }
 

3voto

r.jain Points 11

Dans les options de l'objet que vous avez utilisé signe "=" à la valeur à attribuer port, mais nous devons utiliser ":" pour attribuer des valeurs à des propriétés de l'objet lors de l'utilisation de littéral d'objet pour créer un objet, c'est à dire"{}" ,ces accolades. Même lorsque vous utilisez la fonction de l'expression ou de créer un objet à l'intérieur de l'objet, vous devez utiliser le":". par exemple:

    var rishabh = {
        class:"final year",
        roll:123,
        percent: function(marks1, marks2, marks3){
                      total = marks1 + marks2 + marks3;
                      this.percentage = total/3 }
                    };

john.percent(85,89,95);
console.log(rishabh.percentage);

ici, nous devons utiliser des virgules "," après chaque propriété. mais vous pouvez utiliser un autre style pour créer et initialiser un objet.

var john = new Object():
john.father = "raja";  //1st way to assign using dot operator
john["mother"] = "rani";// 2nd way to assign using brackets and key must be string

3voto

Nitin Nema Points 61

Cette erreur survient généralement lorsque vous essayez d'attribuer un objet avec le signe Equalto (=) plutôt que deux points (:)

Le code correct devrait ressembler à: -

var options = {hôte: 'localhost', port: 8080, chemin: '/', méthode: 'POST'}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X