Ik heb de volgende code in JavaScript geschreven voor een knooppuntproject, maar ik kwam een fout tegen tijdens het testen van een module. Ik weet niet zeker wat de fout betekent. Hier is mijn 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;
Als ik deze module probeer uit te voeren, wordt de volgende fout gegenereerd:
$ 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
Ik begrijp niet helemaal wat dit betekent en wat ik kan doen om dit op te lossen.
Antwoord 1, autoriteit 100%
Omdat het een object is, is de manier om waarde toe te kennen aan zijn eigenschappen het gebruik van :
.
Verander de =
in :
om de fout te herstellen.
var options = {
host: 'localhost',
port: 8080,
path: '/',
method: 'POST'
}
Antwoord 2
In options-object heb je “=” teken gebruikt om waarde aan poort toe te wijzen, maar we moeten “:” gebruiken om waarden toe te wijzen aan eigenschappen in object wanneer object letterlijk wordt gebruikt om een object te maken, dwz “{}”, deze accolades . Zelfs wanneer u een functie-uitdrukking gebruikt of een object binnen een object maakt, moet u het “:”-teken gebruiken.
voor bijv.:
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 moeten we komma’s “,” gebruiken na elke eigenschap.
maar u kunt een andere stijl gebruiken om een object te maken en te initialiseren.
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
Antwoord 3
Gebruik :
in plaats van =
zie onderstaand voorbeeld dat een foutmelding geeft
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()
};
Dat geeft Syntex Error: ongeldige steno-proprty initializer.
Vervolgens vervang ik =
door :
dat lost deze fout op.
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()
};
Antwoord 4
Verander de = to : to
de fout op te lossen.
var makeRequest = function(message) {<br>
var options = {<br>
host: 'localhost',<br>
port : 8080,<br>
path : '/',<br>
method: 'POST'<br>
}
Antwoord 5
gebruik :in plaats van het teken =om de fout te herstellen.