I wrote the following code in JavaScript for a node project, but I ran into an error while testing a module. I'm not sure what the error means. Here's my 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; When I try to run this module, it throws the following error:
$ 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 I dont quite get what this means, and what I can do to resolve this.
5 Answers
Because it's an object, the way to assign value to its properties is using :.
Change the = to : to fix the error.
var options = { host: 'localhost', port: 8080, path: '/', method: 'POST' } 4use : instead of using = sign for fixing the error.
In options object you have used "=" sign to assign value to port but we have to use ":" to assign values to properties in object when using object literal to create an object i.e."{}" ,these curly brackets. Even when you use function expression or create an object inside object you have to use ":" sign. for e.g.:
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); here we have to use commas "," after each property. but you can use another style to create and initialize an object.
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 Change the = to : to fix the error.
var makeRequest = function(message) {<br> var options = {<br> host: 'localhost',<br> port : 8080,<br> path : '/',<br> method: 'POST'<br> } Use : instead of =
see the example below that gives an error
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() }; That gives Syntex Error: invalid shorthand proprty initializer.
Then i replace = with : that's solve this error.
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() };