Ungültiger Kurzschrift-Eigenschaftsinitialisierer [closed]

Lesezeit: 3 Minuten

Benutzer-Avatar
Pallab Ganguly

Ich habe den folgenden Code in JavaScript für ein Knotenprojekt geschrieben, aber beim Testen eines Moduls ist ein Fehler aufgetreten. Ich bin mir nicht sicher, was der Fehler bedeutet. Hier ist mein Code:

var http = require('http');
// makes an http request
var makeRequest = function(message) {
 var options = {
  host: 'localhost',
  port = 8080,
  path : "https://stackoverflow.com/",
  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;

Wenn ich versuche, dieses Modul auszuführen, wird der folgende Fehler ausgegeben:

$ node make_request.js
/home/pallab/Desktop/make_request.js:8
    path="https://stackoverflow.com/",
    ^^^^^^^^^^
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

Ich verstehe nicht ganz, was das bedeutet und was ich tun kann, um dies zu lösen.

Benutzer-Avatar
Diego Faria

Da es sich um ein Objekt handelt, können Sie seinen Eigenschaften Werte zuweisen :.

Ändere das = zu : um den Fehler zu beheben.

var options = {
  host: 'localhost',
  port: 8080,
  path: "https://stackoverflow.com/",
  method: 'POST'
 }

  • Das hat funktioniert, aber ich dachte, Sie verwenden = zum Speichern von Zahlen und : für Zeichenfolgen

    – Pallab Ganguly

    2. Februar 2017 um 15:58 Uhr

  • Sehen Dokumentation zum Objektinitialisierer um zu lernen, wie man Objektliterale in Javascript initialisiert. Speziell die aufgerufene Sitzung Objekte erstellen.

    – Diego Faria

    2. Februar 2017 um 16:01 Uhr


  • Ich dachte, Sie verwenden = Nummern zu speichern u : für Saiten Ich frage mich, woher Sie diese Idee haben.

    Benutzer663031

    2. Februar 2017 um 16:35 Uhr

  • Mein gesamtes Projekt ist gescheitert, weil ich ein “=” anstelle eines “:” gesetzt habe! Aussagekräftigere Fehlermeldungen hätten aber geholfen.

    – Adamantus

    14. Mai 2021 um 17:47 Uhr

verwenden : statt zu verwenden = Zeichen für die Behebung des Fehlers.

Im Optionsobjekt haben Sie das Zeichen “=” verwendet, um dem Port einen Wert zuzuweisen, aber wir müssen “:” verwenden, um den Eigenschaften im Objekt Werte zuzuweisen, wenn Sie das Objektliteral verwenden, um ein Objekt zu erstellen, dh “{}”, diese geschweiften Klammern. Auch wenn Sie einen Funktionsausdruck verwenden oder ein Objekt innerhalb eines Objekts erstellen, müssen Sie das Zeichen “:” verwenden. für zB:

    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);

Hier müssen wir nach jeder Eigenschaft Kommas “,” verwenden. Sie können jedoch einen anderen Stil verwenden, um ein Objekt zu erstellen und zu initialisieren.

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

Benutzer-Avatar
amit pasuan

Ändere das = to : to beheben Sie den Fehler.

var makeRequest = function(message) {<br>
 var options = {<br>
  host: 'localhost',<br>
  port : 8080,<br>
  path : "https://stackoverflow.com/",<br>
  method: 'POST'<br>
 }

Verwenden : Anstatt von =

siehe das Beispiel unten, das einen Fehler ausgibt

app.post('/mews', (req, res) => {
if (isValidMew(req.body)) {
    // insert into db
    const mew = {
        name = filter.clean(req.body.name.toString()),
        content = filter.clean(req.body.content.toString()),
        created: new Date()
    };

Das gibt Syntex Error: invalid shorthand property initializer.

Dann ersetze ich = mit : das ist diesen Fehler zu lösen.

app.post('/mews', (req, res) => {
if (isValidMew(req.body)) {
    // insert into db
    const mew = {
        name: filter.clean(req.body.name.toString()),
        content: filter.clean(req.body.content.toString()),
        created: new Date()
    };

1311530cookie-checkUngültiger Kurzschrift-Eigenschaftsinitialisierer [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy