নোড.জেএস-এ এক্সপ্রেস.জেএস-এ জিইটি (ক্যোরি স্ট্রিং) ভেরিয়েবলগুলি কীভাবে পাবেন?


1190

নোড.জেএস-তে যেমন আমরা $_GETপিএইচপি-তে পেয়েছি তেমন কি আমরা কি ক্যারিয়ার স্ট্রিংয়ে ভেরিয়েবলগুলি পেতে পারি ?

আমি জানি যে নোড.জেজে আমরা অনুরোধে ইউআরএল পেতে পারি। ক্যোরি স্ট্রিং প্যারামিটারগুলি পাওয়ার কোনও পদ্ধতি আছে?


6
@ হোয়াইট কোয়ার্কের উত্তর (সবচেয়ে বেশি ভোট সহ একটি) সঠিক উত্তর হিসাবে চিহ্নিত করা উচিত। আপনি যেমন নিজের প্রশ্নে হোঁচট খাচ্ছেন ঠিক তেমনই অন্যদের জন্যও এটি আপডেট করার বিষয়ে আপনার কি আপত্তি আছে?
Dev01

এক্সপ্রেস অনুরোধে ক্যোয়ারী অবজেক্টটি ব্যবহার করুন - এক্সপ্রেস রিকোয়েস্ট ক্যোয়ারী ব্যবহার করে
সন্ত্রস্ত করুন

@ দেব01 তিনি ২০১৪ সাল থেকে সক্রিয় নেই
জন বালভিন আরিয়াস

যদি কেউ এক্সপ্রেজেজ এবং মঙ্গোডিবি সহ নোডেজ এপিআইয়ের বয়লারপ্লেট খুঁজছেন। এটি ব্যবহার করে দেখুন: github.com/maitraysuthar/rest-api-nodejs-mongodb
মৈত্রে সুথার

উত্তর:


1177

এক্সপ্রেসে এটি ইতিমধ্যে আপনার জন্য হয়ে গেছে এবং আপনি কেবল এর জন্য পুনরায় জিজ্ঞাসা ব্যবহার করতে পারেন :

var id = req.query.id; // $_GET["id"]

অন্যথায়, নোডজেএস-এ , আপনি url[url.parse] ( https://nodejs.org/api/url.html#url_url_parse_urlstring_parsequerystring_slashesdenotehost ) এ ম্যানুয়ালি req.url এবং বিল্টিন মডিউলটি অ্যাক্সেস করতে পারবেন :

var url = require('url');
var url_parts = url.parse(request.url, true);
var query = url_parts.query;

24
এখানে মনোযোগ দিন: পার্স (url, সত্য ) url.parse(urlStr, [parseQueryString], [slashesDenoteHost])
befzz

হাইপি কোন অতিরিক্ত / আরও ভাল কার্যকারিতা সরবরাহ করে (যদি থাকে)?
বাল্টস্টার

180
এটি গৃহীত হয়েছে তবে এটি পছন্দসই উত্তর নয়। নিচে দেখ! ব্যবহারreq.query
চিজো

2
নীচে মাইকমেকনিলের উত্তরটি আরও ভাল পছন্দ। ব্যবহার করুন req.queryবা req.param(যা req.paramsনীচে দেখুন ... এর চেয়ে পৃথক
M)

9
-1 । উপরের কোডটি একটি ডেডওয়েট - কোনও ভাল বিকাশকারী ঘটনাস্থলে রিফ্যাক্টর করবে। এটি " একটি ইউআরএল এর ক্যোয়ারী স্ট্রিংটি কীভাবে পাবেন? " - এর একটি উত্তর - প্রশ্নে থাকা ইউআরএলটি কেবলমাত্র একটি নামের নামের মধ্যে রয়েছে requestএবং এক্সপ্রেসের সাথে তার কোনও যোগসূত্র নেই। নীচে @ হোয়াইটক্কার্কের উত্তর দেখুন (ব্যবহার করুন request.query)
লুনোহোডোভ

1648

যেহেতু আপনি আপনার ট্যাগগুলিতে এক্সপ্রেস.জেস উল্লেখ করেছেন, তাই এখানে একটি এক্সপ্রেস-নির্দিষ্ট উত্তর: পুনরায় জিজ্ঞাসা ব্যবহার করুন । যেমন

var express = require('express');
var app = express();

app.get('/', function(req, res){
  res.send('id: ' + req.query.id);
});

app.listen(3000);

67
আপনার ব্যবহার করা উচিত উল্লেখযোগ্যভাবে req.query.id, বন্ধনী স্বরলিপি ব্যবহার করার প্রয়োজন নেই।
অ্যালেক্স

এক্সপ্রেস ইনস্টল করতে এটি করুন: হ্যাঁ | sudo এনপিএম ইনস্টল -জি এক্সপ্রেস --- আমি সম্পাদনা করার চেষ্টা করেছি কিন্তু অ্যালেক্সিস কিং আবার ফিরে গেছে।
ফিলিপ

প্রশ্নে তিনি অ্যারের মতো সমস্ত ক্যোরিয় স্ট্রিং প্যারামিটার পাওয়ার উপায় খুঁজছিলেন। সঠিক উত্তরটি হ'ল: app.get ('/', ফাংশন (req, res) {কনসোল.লগ (req.query);});
রিচার্ড টর্কাটো

463

এক্সপ্রেসে, ব্যবহার করুন req.query

req.paramsকেবল রুট প্যারামিটারগুলি পায়, কোয়েরি স্ট্রিং প্যারামিটারগুলি নয়। দেখুন দ্রুতগামী বা পালের ডকুমেন্টেশন:

(req.params) রুট প্যারামগুলি পরীক্ষা করে, প্রাক্তন: / ব্যবহারকারী /: আইডি

(req.query) ক্যোয়ারিং স্ট্রিং প্যারামগুলি পরীক্ষা করে, উদাহরণস্বরূপ:? id = 12 urlncoded বডি প্যারামগুলি পরীক্ষা করে

(req.body), প্রাক্তন: id = 12 urlencoded অনুরোধ সংস্থাগুলি ব্যবহার করতে, রেকর্ড.কে একটি বস্তু হওয়া উচিত। এটি _express.bodyParser মিডওয়্যারটি ব্যবহার করে করা যেতে পারে।

এটি বলেছিল, বেশিরভাগ সময়, আপনি কোনও প্যারামিটারের উত্স নির্বিশেষে মূল্য পেতে চান। সেক্ষেত্রে ব্যবহার করুন req.param('foo')

চলকটি রুট প্যারামিটার, ক্যোয়ারী স্ট্রিং বা এনকোডযুক্ত অনুরোধের বডিটিতে ছিল কিনা তা প্যারামিটারের মান ফেরত দেওয়া হবে।

পার্শ্ব নোট- যদি আপনি তিনটি অনুরোধের প্যারামিটারের (পিএইচপি'র অনুরূপ $_REQUEST) ছেদ পেতে চান তবে আপনাকে কেবল পরামিতিগুলি একত্রিত করতে হবে - এখানে আমি এটি সেলগুলিতে কীভাবে সেট আপ করব । মনে রাখবেন যে পথ / রুট প্যারামিটার অবজেক্টে ( req.params) এর অ্যারে বৈশিষ্ট্য রয়েছে, সুতরাং বিষয়গুলি অর্ডার করুন (যদিও এটি এক্সপ্রেস 4 এ পরিবর্তিত হতে পারে )


req.param ('STRING') সঠিক উত্তর। এখানে দেখুন: স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 17007997/… (স্বীকৃত উত্তরের নীচে উত্তর দিতে স্ক্রোল করুন)
জোসেফ জুহনকে

3
@ দালতাব এখানে req.paramsসেলস ডক্সের লিঙ্কটি দিয়েছেন : সেলসজস.আর.জি .# / docamentation / references / req / req.params.html এবং নতুন এক্সপ্রেস ডক্স: এক্সপ্রেজস / ৪x
অ্যাপি

7
req.param দ্রুতগামী 4.x মধ্যে নিন্দা করা হয়েছে, req.params, req.body বা req.query পরিবর্তে ব্যবহার করা উচিত: expressjs.com/en/4x/api.html#req.param
swang

@ সোয়াং ঠিক বলেছেন - আমি সম্প্রতি এ সম্পর্কে ডগ উইলসনের সাথে ডাবল-চেক করেছি এবং req.param()হেল্পার ফাংশনটি 5 এক্সপ্রেসে সম্পূর্ণরূপে সরিয়ে ফেলা হতে পারে এটি 2017 এর কিছু সময়ের পরে আসন্ন হবে না, তাই আমি সম্পাদনা করার জন্য অপেক্ষা করব এই উত্তর না হওয়া পর্যন্ত। মাঝামাঝি সময়ে: req.param()এক্সপ্রেস <= 3.x / সেল <= 0.12 এবং এক্সপ্রেস 4 এর সর্বশেষ উপলব্ধ রিলিজ সহ ডাব্লু / অব হ্রাস লগ বার্তা সহ এটি ব্যবহার করা নিরাপদ । (বেল ব্যবহারকারীদের জন্য: এর প্রয়োগগুলি req.param()সেল সেল
ভি 1.0

142

এক্সপ্রেস.জেএস এর জন্য আপনি যা করতে চান req.params:

app.get('/user/:id', function(req, res) {
  res.send('user' + req.params.id);    
});

8
এক্সপ্রেস.জেজে জিইটি ভেরিয়েবলগুলি পুনরুদ্ধার করতে আপনি পুনরায় জিজ্ঞাসা ব্যবহার করতে পারেন।
বেন সিনক্লেয়ার

6
@ অ্যান্ডি রেক.কমগুলি আরও ভাল কারণ: req.param (নাম [, ডিফল্ট]) হবে: উপস্থিত বা ডিফল্ট অবস্থায় পরম নামের মান ফিরিয়ে দেবে। রুট প্যারামগুলি পরীক্ষা করে (req.params), প্রাক্তন: / ব্যবহারকারী /: id চেক কোয়েরি স্ট্রিং প্যারামগুলি (req.query), উদাহরণ:? Id = 12 urlencoded বডি প্যারাম (req.body) পরীক্ষা করে, প্রাক্তন: id = 12 urlencoded অনুরোধটি ব্যবহার করতে মৃতদেহ, req.body একটি বস্তু হওয়া উচিত। এটি _express.bodyParser মিডওয়্যারটি ব্যবহার করে করা যেতে পারে।
ক্রিস-ও

আমি req.query জন্য req.param চেকগুলি জানতাম না, এই নোটের জন্য ধন্যবাদ।
বেন সিনক্লেয়ার

3
req.param ('প্যারামিটারনেম') req.body, req.query এবং req.params অনুসন্ধান করবে, তবে আপনি যদি কোনও বিষয় হিসাবে ক্যোয়ারীর সমস্ত পরামিতি চান তবে আপনার অবশ্যই req.query ব্যবহার করা উচিত।
মিকর্ম্কনিল

1
@ মিকর্মক্নিল আপনি সম্ভবত রেক.প্যারাম () এবং রেকিউটারেমস (অবজেক্ট) মিশ্রিত করেছেন। এক্সপ্রেস অনুসারে ডকস req.param () তিনটি বস্তুর জন্য মান সন্ধান করে। expressjs.com/api.html#req.param
বেন সিনক্লেয়ার

78

আমি অন্যান্য উত্তরগুলি থেকে শিখেছি এবং আমার সাইট জুড়ে এই কোডটি ব্যবহার করার সিদ্ধান্ত নিয়েছি:

var query = require('url').parse(req.url,true).query;

তারপরে আপনি কেবল কল করতে পারেন

var id = query.id;
var option = query.option;

প্রাপ্তির URL যেখানে হওয়া উচিত

/path/filename?id=123&option=456

2
আইডি এবং বিকল্পটি অপরিবর্তিত হবে না কারণ ক্যোয়ারী কেবল একটি স্ট্রিং? আমাদের দুটি পৃথক পরামিতি একটি রেইজেক্স বা এর মতো করে পার্স করতে হবে।
ওসেক

1
@ossek আমি ঘটাচ্ছে আইন বিশ্বাস parseউপর req.urlএকটা অবজেক্ট রূপান্তরিত করে।
হোয়াইটফিন

1
@ এসেক্স, তিনি url.parse এর দ্বিতীয় তর্ক হিসাবে সত্য সরবরাহ করেছেন, যা ক্যোয়ারী সম্পত্তিটিকে কোনও বস্তুর দিকে নির্দেশ করে (এবং অভ্যন্তরীণভাবে ক্যোরিস্ট্রিং মডিউলটি ব্যবহার করে) আপনি ডক্সে এটি সম্পর্কে আরও জানতে পারেন ( nodejs.org/docs) / সর্বশেষ / এপিআই /… )
ভারত

কাজ করেছেন .... অনেক ধন্যবাদ !!!
প্রীতেক গুপ্ত


48

আপনি যদি ES6 এবং এক্সপ্রেস ব্যবহার করছেন তবে এই destructuringপদ্ধতির চেষ্টা করুন :

const {id, since, fields, anotherField} = request.query;

প্রেক্ষাপটে:

const express = require('express');
const app = express();

app.get('/', function(req, res){
   const {id, since, fields, anotherField} = req.query;
});

app.listen(3000);

আপনি এটির সাথে ডিফল্ট মানগুলিও ব্যবহার করতে পারেন destructuring:

// sample request for testing
const req = {
  query: {
    id: '123',
    fields: ['a', 'b', 'c']
  }
}

const {
  id,
  since = new Date().toString(),
  fields = ['x'],
  anotherField = 'default'
} = req.query;

console.log(id, since, fields, anotherField)


ডিফল্ট মান সহ অবজেক্ট ডেস্ট্রাকচারিং ব্যবহার করে! +1
নেতৃত্ব বিকাশকারী

43

জিইটি পদ্ধতির মাধ্যমে প্যারামিটারগুলি পাস করার জন্য দুটি উপায় রয়েছে

পদ্ধতি 1: আপনি যে রাউটেনাম /: পরামিতর মতো পরামিতিগুলি পাস করেন সেখানে এমভিসি পদ্ধতির
ক্ষেত্রে আপনি প্যারামিটারের মান পেতে req.params.paramname ব্যবহার করতে পারেন উদাহরণ হিসাবে নীচের কোডটি উল্লেখ করুন যেখানে I পারম
লিঙ্ক হিসাবে আইডিটি প্রত্যাশা করছি : http://myhost.com/items/23

var express = require('express');
var app = express();
app.get("items/:id", function(req, res) {
    var id = req.params.id;
    //further operations to perform
});
app.listen(3000);

পদ্ধতি 2: সাধারণ পদ্ধতি: 'ব্যবহার করে কোয়েরি স্ট্রিং হিসাবে ভেরিয়েবল পাস? অপারেটরের
উদাহরণের নীচে কোডটি উল্লেখ করুন যেখানে আমি কোয়েরি প্যারামিটার
লিঙ্কের মতো আইডির প্রত্যাশা করছি : http://myhost.com/items?id=23

var express = require('express');
var app = express();
app.get("/items", function(req, res) {
    var id = req.query.id;
    //further operations to perform
});
app.listen(3000);

40

আপনার এমন কিছু করতে সক্ষম হওয়া উচিত:

var http = require('http');
var url  = require('url');

http.createServer(function(req,res){
    var url_parts = url.parse(req.url, true);
    var query = url_parts.query;

    console.log(query); //{Object}

    res.end("End")
})

26

আপডেট 4 মে 2014

পুরানো উত্তর এখানে সংরক্ষণ করা হয়েছে: https://gist.github.com/stefek99/b10ed037d2a4a323d638


1) এক্সপ্রেস ইনস্টল করুন: npm install express

app.js

var express = require('express');
var app = express();

app.get('/endpoint', function(request, response) {
    var id = request.query.id;
    response.end("I have received the ID: " + id);
});

app.listen(3000);
console.log("node express app started at http://localhost:3000");

2) অ্যাপটি চালান: node app.js

3) ব্রাউজারে যান: http://localhost:3000/endpoint?id=something

আমি আইডি পেয়েছি: কিছু


(আমার উত্তরের পরে অনেক কিছুই পরিবর্তিত হয়েছে এবং আমি বিশ্বাস করি যে এটি জিনিস আপ টু ডেট রাখার পক্ষে মূল্যবান)


20

একটি ছোট নোড.জেএস এইচটিটিপি সার্ভার 9080 পোর্টে শুনছে, জিইটি বা পোষ্টের ডেটা পার্স করে এবং প্রতিক্রিয়ার অংশ হিসাবে এটি ক্লায়েন্টকে ফেরত পাঠিয়েছে:

var sys = require('sys'),
url = require('url'),
http = require('http'),
qs = require('querystring');

var server = http.createServer(

    function (request, response) {

        if (request.method == 'POST') {
                var body = '';
                request.on('data', function (data) {
                    body += data;
                });
                request.on('end',function() {

                    var POST =  qs.parse(body);
                    //console.log(POST);
                    response.writeHead( 200 );
                    response.write( JSON.stringify( POST ) );
                    response.end();
                });
        }
        else if(request.method == 'GET') {

            var url_parts = url.parse(request.url,true);
            //console.log(url_parts.query);
            response.writeHead( 200 );
            response.write( JSON.stringify( url_parts.query ) );
            response.end();
        }
    }
);

server.listen(9080);

এটি হিসাবে সংরক্ষণ করুন parse.jsএবং "নোড পার্স.জেএস" প্রবেশ করে কনসোলে চালান।


3
এই উদাহরণে আপনার দরকার নেই
ড্যানওয়েলম্যান

20

হোয়াইটকার্ক সুন্দরভাবে প্রতিক্রিয়া জানাল। তবে নোড.জেএস এবং এক্সপ্রেস.জেএস এর বর্তমান সংস্করণগুলির সাথে এর জন্য আরও একটি লাইন প্রয়োজন। 'প্রয়োজনীয় HTTP' (দ্বিতীয় লাইন) যুক্ত করার বিষয়টি নিশ্চিত করুন। আমি এখানে একটি পূর্ণ উদাহরণ পোস্ট করেছি যা দেখায় যে এই কলটি কীভাবে কাজ করতে পারে। একবার চলার পরে, http://localhost:8080/?name=abel&fruit=appleআপনার ব্রাউজারে টাইপ করুন, এবং আপনি কোডের উপর ভিত্তি করে একটি দুর্দান্ত প্রতিক্রিয়া পাবেন।

var express = require('express');
var http = require('http');
var app = express();

app.configure(function(){
    app.set('port', 8080);
});

app.get('/', function(req, res){
  res.writeHead(200, {'content-type': 'text/plain'});
  res.write('name: ' + req.query.name + '\n');
  res.write('fruit: ' + req.query.fruit + '\n');
  res.write('query: ' + req.query + '\n');
  queryStuff = JSON.stringify(req.query);
  res.end('That\'s all folks'  + '\n' + queryStuff);
});

http.createServer(app).listen(app.get('port'), function(){
    console.log("Express server listening on port " + app.get('port'));
})

15

এটি এত সহজ:

উদাহরণ ইউআরএল:

http://stackoverflow.com:3000/activate_accountid=3&activatekey=$2a$08$jvGevXUOvYxKsiBt.PpMs.zgzD4C/wwTsvjzfUrqLrgS3zXJVfVRK

আপনি ব্যবহার করে ক্যোয়ারী স্ট্রিংয়ের সমস্ত মান মুদ্রণ করতে পারেন:

console.log("All query strings: " + JSON.stringify(req.query));

আউটপুট

সমস্ত প্রশ্নের স্ট্রিং: {"আইডি": "3", "অ্যাক্টিভেটকি": "$ 2 এ $ 08 $ jvGevXUOvYxKsiBt.PpMs.zgzD4C / wwTsvjz fUrqLrgS3zXJVfVRK"

নির্দিষ্ট মুদ্রণ করতে:

console.log("activatekey: " + req.query.activatekey);

আউটপুট

অ্যাক্টিভেটকি: $ 2a $ 08 $ jvGevXUOvYxKsiBt.PpMs.zgzD4C / wwTsvjzfUrqLrgS3zXJVfVRK



13

আপনি এক্সপ্রেস ^ 4.15.4 এর সাথে ব্যবহার করতে পারেন:

var express = require('express'),
    router = express.Router();
router.get('/', function (req, res, next) {
    console.log(req.query);
});

আশাকরি এটা সাহায্য করবে.


6

ইন express.jsআপনি এটা বেশ সহজ পেতে পারেন, সব আপনি আপনার নিয়ামক ফাংশনে যা করতে হবে হল:

app.get('/', (req, res, next) => {
   const {id} = req.query;
   // rest of your code here...
})

এবং এগুলিই, ধরে নিই আপনি এস 6 সিনট্যাক্স ব্যবহার করছেন।

পি ডি। {id}এর জন্য দাঁড়িয়েছে Object destructuring, একটি নতুন এস 6 বৈশিষ্ট্য।


আমি নোড দিয়ে এক্সপ্রেস ব্যবহার করছি তাই এটি আমার জন্য নিখুঁতভাবে কাজ করেছে। ধন্যবাদ!
ব্যবহারকারী 752746

4
app.get('/user/:id', function(req, res) {
    res.send('user' + req.params.id);    
});

আপনি এটি ব্যবহার করতে পারেন বা অনুরোধের পরামিতিগুলি থেকে বিশেষ উপাদান পার্স করার জন্য আপনি বডি পার্সার চেষ্টা করতে পারেন।


1
আপনি আরও ব্যাখ্যা করতে পারেন কীভাবে এটি প্রশ্নের উত্তর দেয়?
নিকো হাজেস

এবং এটি কীভাবে বিদ্যমান প্যারামিটার তালিকাকে পার্স করে?
নিকো হেসে

আপনি নোড.জেএস থেকে বডি পার্সার মডিউলটি ব্যবহার করতে পারেন
মেহেদী আবদুল্লাহ

1

এটি আসলে সহজ:

const express= require('express');
const app = express();

app.get('/post', (req, res, next) => {
  res.send('ID:' + req.query.id + ' Edit:'+ req.query.edit);
});

app.listen(1000);

// localhost:1000/post?id=123&edit=true
// output: ID: 123 Edit: true

0

আপনি url.parse ব্যবহার করে পরামিতিগুলি সংগ্রহ করতে url মডিউলটি ব্যবহার করতে পারেন

var url = require('url');
var url_data = url.parse(request.url, true);
var query = url_data.query;

এক্সপ্রেসগুলিতে এটি সম্পন্ন করেছে,

var id = req.query.id;

উদাহরণ:

var express = require('express');
var app = express();

app.get('/login', function (req, res, next) {
    console.log(req.query);
    console.log(req.query.id); //Give parameter id
});

0

এক্সপ্রেসে, আমরা কেবল ব্যবহার করতে পারি req.query.<name>। এটি $_GET['name']পিএইচপি- র মতোই কাজ করে ।


0

আমার দৃষ্টিকোণ থেকে আমি মনে করি যে অনেক লোক দুটি পৃথক ধারণা মিশ্রিত করে। আরআরইএসটি বিকাশের সময় আমি দুটি উপায় "পাথ ভেরিয়েবল" এবং "অনুরোধ প্যারামিটারগুলি" (ক্যোয়ারী প্যারামিটার) দিয়ে ইউআরএলটিতে তথ্য পাস করার সাথে পরিচিত ছিলাম। আরএফসি ইউআরআই-এর অংশগুলি এর মতো বর্ণনা করে: লিঙ্কের বিবরণ এখানে প্রবেশ করান তাই আমি বুঝতে পেরেছিলাম যে লেখক কীভাবে অনুরোধের পরামিতিগুলি পাস করবেন তা জানতে চাইবেন। আমি কেবল বিষয়টিকে বুঝতে সহজ করে তুলতে চাই, তবে সমাধানটি এখানে বহুবার উল্লেখ করা হয়েছিল।

আপনি ইউআরআই থেকে ক্যোয়ারী প্যারামিটারগুলি সাথে পেতে পারেন request.query.<name of the parameter>, দ্বিতীয় বর্ণিত সমাধানটি ছিল request.params.<name of the parameter>এবং এর সাহায্যে আপনি পাথের ভেরিয়েবলগুলি পেতে পারেন।


0

সুতরাং, দুটি উপায় রয়েছে যার মাধ্যমে এই "আইডি" গ্রহণ করা যেতে পারে: 1) প্যারাম ব্যবহার করে: কোড প্যারামগুলি এমন কিছু দেখতে পাবেন: বলুন যে আমাদের একটি অ্যারে আছে,

const courses = [{
    id: 1,
    name: 'Mathematics'
},
{
    id: 2,
    name: 'History'
}
];

তারপরে প্যারামগুলির জন্য আমরা এর মতো কিছু করতে পারি:

app.get('/api/posts/:id',(req,res)=>{
    const course = courses.find(o=>o.id == (req.params.id))
    res.send(course);
});

2) অন্য পদ্ধতিটি হল ক্যোয়ারী প্যারামিটারগুলি ব্যবহার করা। ইউআরএল "..... \ এপিআই xyz? id = 1" যেখানে "? আইডি = 1" এর কোয়েরি অংশ হিসাবে কিছু দেখতে পাবেন। এক্ষেত্রে আমরা এর মতো কিছু করতে পারি:

app.get('/api/posts',(req,res)=>{
    const course = courses.find(o=>o.id == (req.query.id))
    res.send(course);
});


0

আপনার যদি কখনও GETকোনও অনুরোধ প্রেরণের IPপাশাপাশি কোনও Domain(অন্য উত্তরগুলি উল্লেখ করে না তবে আপনি একটি portপরিবর্তনশীল নির্দিষ্ট করতে পারেন ), আপনি এই ফাংশনটি ব্যবহার করতে পারেন:

function getCode(host, port, path, queryString) {
    console.log("(" + host + ":" + port + path + ")" + "Running httpHelper.getCode()")

    // Construct url and query string
    const requestUrl = url.parse(url.format({
        protocol: 'http',
        hostname: host,
        pathname: path,
        port: port,
        query: queryString
    }));

    console.log("(" + host + path + ")" + "Sending GET request")
    // Send request
    console.log(url.format(requestUrl))
    http.get(url.format(requestUrl), (resp) => {
        let data = '';

        // A chunk of data has been received.
        resp.on('data', (chunk) => {
            console.log("GET chunk: " + chunk);
            data += chunk;
        });

        // The whole response has been received. Print out the result.
        resp.on('end', () => {
            console.log("GET end of response: " + data);
        });

    }).on("error", (err) => {
        console.log("GET Error: " + err);
    });
}

আপনার ফাইলের শীর্ষে প্রয়োজনীয় মডিউলগুলি মিস করবেন না:

http = require("http");
url = require('url')

httpsসুরক্ষিত ডোমেন এবং এসএসএল যোগাযোগের জন্য আপনি মডিউল ব্যবহার করতে পারেন তা মনে রাখবেন bare সুতরাং এই দুটি লাইন পরিবর্তন হবে:

https = require("https");
...
https.get(url.format(requestUrl), (resp) => { ......

-1

সার্ভার কোডের সাথে কেন মিশ্রিত হবে না

যেমন পিএইচপি

<script>
var ip=<?php echo($_SERVER['REMOTE_ADDR']);?>

</script>

-2

আমি এক্সপ্রেস@4.16 এর সাথে এমইএনজেএস 0.6.0 ব্যবহার করছি , এটি ভাল

ক্লায়েন্ট:

নিয়ন্ত্রক:

var input = { keyword: vm.keyword };
ProductAPi.getOrder(input)

সেবা:

this.getOrder = function (input) {return $http.get('/api/order', { params: input });};

সার্ভার

যাত্রাপথ

app.route('/api/order').get(products.order);

নিয়ামক

exports.order = function (req, res) {
  var keyword = req.query.keyword
  ...

-3

-------- ক্যারিিং স্ট্রিং ডেটা অ্যাক্সেস করা -------
ধরুন এটি লিঙ্কটি http://webapplog.com/search?term=node.js&page=1

এক্সপ্রেসে আপনি ব্যবহার করতে পারেন:

  • req.query.term
  • req.query.page অথবা
  • req.query(এটি একটি অবজেক্টে ক্যোয়ারী আনবে)

    // উদাহরণ
    app.get('http://webapplog.com/search?term=node.js&page=1',(req, res)=>{ res.json({term:req.query.term, page:req.query.page}) })

-------- ইউআরএল পরামিতিগুলি অ্যাক্সেস করা -------
ধরুন এই লিঙ্কটি http://webapplog.com/node.js/pages/100
সুতরাং এক্সপ্রেসে আপনি ব্যবহার করতে পারেন: app.get('/:term/pages/:page',....)

  • req.params.term
  • req.params.page

    // উদাহরণ
    app.get('http://webapplog.com/:term/pages/:page',(req, res)=>{ res.json({term:req.params.term, page:req.params.page}) })
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.