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.
Diego Faria
Da es sich um ein Objekt handelt, können Sie seinen Eigenschaften Werte zuweisen :.
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:
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
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()
};