অবৈধ শর্টহ্যান্ড সম্পত্তি প্রারম্ভিক


164

আমি নোড প্রকল্পের জন্য জাভাস্ক্রিপ্টে নিম্নলিখিত কোডটি লিখেছি, তবে মডিউলটি পরীক্ষা করার সময় আমি একটি ত্রুটির মধ্যে পড়েছিলাম। আমি নিশ্চিত না যে ত্রুটিটির অর্থ কী। আমার কোডটি এখানে:

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;

আমি যখন এই মডিউলটি চালানোর চেষ্টা করি তখন এটি নিম্নলিখিত ত্রুটিটি ছুঁড়ে দেয়:

$ 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

এর অর্থ কী এবং আমি এটিকে সমাধান করার জন্য আমি কী করতে পারি তা যথেষ্টই পাই না।

উত্তর:


439

কারণ এটি কোনও অবজেক্ট, এর বৈশিষ্ট্যগুলিকে মান নির্ধারণের উপায়টি ব্যবহার করা হচ্ছে :

ত্রুটিটি ঠিক =করতে পরিবর্তন করুন :

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

এটি কার্যকর হয়েছিল, তবে আমি ভেবেছিলাম আপনি সংখ্যা সংরক্ষণ করতে = ব্যবহার করুন এবং: স্ট্রিংয়ের জন্য
পল্লব গাঙ্গুলি

1
জাভাস্ক্রিপ্টে অবজেক্ট লিটারাল কীভাবে শুরু করতে হয় তা জানতে অবজেক্ট ইনিশিয়ালাইজার ডক্স দেখুন । বিশেষ করে অধিবেশন তৈরি করা নামক অধিবেশন ।
দিয়েগো ফারিয়া 16

6
আমি ভেবেছিলাম আপনি =সংখ্যা সঞ্চয় করতে ব্যবহার করেছেন এবং :স্ট্রিংগুলির জন্য আমি ভাবছি আপনি কোথায় এই ধারণাটি পেয়েছেন।

2
Arghh! একটি কফি দখল করার সময়। ধন্যবাদ। :)
আরেন্ডে

5

এই ত্রুটিটি তখনই আসে যখন আপনি কোলন (:) এর পরিবর্তে সমান (=) চিহ্ন দিয়ে কোনও বস্তু নির্ধারণ করার চেষ্টা করেন comes

সঠিক কোডটি এমন হওয়া উচিত: -

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

3

অপশন অবজেক্টে আপনি পোর্টে মান নির্ধারণের জন্য "=" চিহ্নটি ব্যবহার করেছেন তবে অবজেক্ট ল্যাটারাল ব্যবহার করে যখন বস্তুটি "ly}", এই কোঁকড়া বন্ধনী তৈরি করতে অবজেক্টের বৈশিষ্ট্যগুলিতে মান নির্ধারণ করতে আমাদের ":" ব্যবহার করতে হবে। এমনকি আপনি যখন ফাংশন এক্সপ্রেশন ব্যবহার করেন বা কোনও অবজেক্টের ভিতরে কোনও অবজেক্ট তৈরি করেন তখন আপনাকে ":" চিহ্ন ব্যবহার করতে হবে। যেমন:

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

এখানে আমাদের প্রতিটি সম্পত্তি পরে "," কমা ব্যবহার করতে হবে। তবে আপনি কোনও অবজেক্ট তৈরি এবং সূচনা করতে অন্য স্টাইল ব্যবহার করতে পারেন।

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

1

:পরিবর্তে ব্যবহার করুন=

নীচের উদাহরণটি দেখুন যা একটি ত্রুটি দেয়

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

এটি সিনটেক্স ত্রুটি দেয়: অবৈধ শর্টহ্যান্ড প্রোপ্রটি ইনিজায়ারাইজার।

তারপর আমি প্রতিস্থাপন = সঙ্গে :যে এই ত্রুটি সমাধানের জন্য।

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()
    };
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.