Node.js හි Express.js හි GET (විමසුම් නූල්) විචල්‍යයන් ලබා ගන්නේ කෙසේද?


1211

අපි $_GETPHP තුළට ඇතුල් වනවා සේම, Node.js හි විමසුම් දාමයේ විචල්‍යයන් ලබා ගත හැකිද ?

Node.js හි අපට ඉල්ලීමෙහි URL ලබා ගත හැකි බව මම දනිමි. විමසුම් නූල් පරාමිතීන් ලබා ගැනීමට ක්‍රමයක් තිබේද?


6
@ වයිට්කාර්ක්ගේ පිළිතුර (වැඩිම ඡන්ද ලබාගත් තැනැත්තා) නිවැරදි පිළිතුර ලෙස සලකුණු කළ යුතුය. ඔබේ ප්‍රශ්නයට බාධා කරන ඔබ හා සමාන ප්‍රශ්නයක් ඇති අනෙක් අයට එය යාවත්කාලීන කිරීමට ඔබ කැමතිද?
Dev01


@ Dev01 ඔහු 2014 සිට ක්‍රියාකාරී නොවේ lol
John Balvin Arias

එක්ස්ප්‍රස්ජස් සහ මොන්ගෝ ඩීබී සමඟ නෝඩෙජ් ඒපීඅයි බොයිලේරු සොයන්නේ නම්. මෙය උත්සාහ කරන්න: github.com/maitraysuthar/rest-api-nodejs-mongodb
මෛත්‍රේ සුතාර්

Answers:


1209

එක්ස්ප්‍රස් හි එය දැනටමත් ඔබ වෙනුවෙන් කර ඇති අතර ඒ සඳහා ඔබට req.query භාවිතා කළ හැකිය :

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

එසේ නොමැතිනම්, NodeJS හි, ඔබට [url.parse] ( https://nodejs.org/api/url.html#url_url_parse_urlstring_parcomingerystring_slashesdenotehost ) වෙත req.url සහ බිල්ඩින්url මොඩියුලය වෙත පිවිසිය හැකිය :

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

26
මෙහි අවධානය: .පාර්ස් (url, සත්‍ය ) url.parse(urlStr, [parseQueryString], [slashesDenoteHost])
befzz

හපී විසින් සපයනු ලබන අතිරේක / වඩා හොඳ ක්‍රියාකාරිත්වය (ඇත්නම්)?
බෝල්ටෝස්ටාර්

182
මෙය පිළිගත් නමුත් එය කැමති පිළිතුර නොවේ. පහත බලන්න! භාවිතයreq.query
Cheeso

2
පහත දැක්වෙන mikemcneil ගේ පිළිතුර වඩා හොඳ තේරීමකි. භාවිතා කරන්න req.queryහෝ req.param(වඩා වෙනස් req.params... පහත බලන්න.
MindJuice

9
-1 . ඉහත කේතය බර අඩු බරකි - හොඳ සංවර්ධකයෙකු එම ස්ථානයේදීම ප්‍රතික්‍රියා කරයි. මෙය " URL එකක විමසුම් දාමය ලබා ගන්නේ කෙසේද? " සඳහා පිළිතුරකි - ප්‍රශ්නයට ලක්වූ URL ය නම් requestකර ඇත්තේ වස්තුවක නම් වන අතර එක්ස්ප්‍රස් සමඟ කිසිදු සම්බන්ධයක් නැත. පහත @ වයිට්කාර්ක්ගේ පිළිතුර බලන්න (භාවිතා කරන්න request.query)
lunohodov

1658

ඔබේ ටැග් වල ඔබ Express.js සඳහන් කර ඇති බැවින්, මෙහි එක්ස්ප්‍රස් විශේෂිත පිළිතුරක් ඇත: req.query භාවිතා කරන්න . උදා

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

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

app.listen(3000);

69
ඔබ භාවිතා කළ යුතු බව සඳහන් කිරීම වටී req.query.id, වරහන් අංකනය භාවිතා කිරීම අවශ්‍ය නොවේ.
ඇලෙක්ස්

සී express ්‍රගාමී ස්ථාපනය සඳහා එය කරන්න: ඔව් | sudo npm install -g express --- මම සංස්කරණය කිරීමට උත්සාහ කළ නමුත් ඇලෙක්සිස් කිං ආපසු හරවා යවා ඇත.
ෆෙලිපේ

ප්රශ්නයේ දී ඔහු අරාව වැනි සියලු විමසුම් නූල් පරාමිතීන් ලබා ගැනීමට ක්රමයක් සොයමින් සිටියේය. නිවැරදි පිළිතුර මෙයයි: app.get ('/', ශ්‍රිතය (req, res) {console.log (req.query);});
රිචඩ් ටෝර්කැටෝ

463

එක්ස්ප්‍රස් හි භාවිතා කරන්න req.query .

req.paramsලැබෙන්නේ මාර්ග පරාමිතීන් මිස විමසුම් නූල් පරාමිතීන් නොවේ. සී express ්‍රගාමී හෝ රුවල් ප්‍රලේඛනය බලන්න:

(req.params) මාර්ග පරාමිතීන් පරික්ෂා කරයි, උදා: / user /: id

(req.query) විමසුම් වචන පරාමිතීන් පරික්ෂා කරයි, උදා :? id = 12 මුත්රා කේත කරන ලද ශරීර පරාමිතීන් පරීක්ෂා කරයි

(req.body), උදා: id = 12 urlencoded ඉල්ලීම් සිරුරු භාවිතා කිරීමට, req.body වස්තුවක් විය යුතුය. _Express.bodyParser මිඩ්ල්වෙයාර් භාවිතා කිරීමෙන් මෙය කළ හැකිය.

එයින් කියැවෙන්නේ, බොහෝ විට, පරාමිතියක ප්‍රභවය නොසලකා එහි වටිනාකම ලබා ගැනීමට ඔබට අවශ්‍ය බවය. එවැනි අවස්ථාවක, භාවිතා කරන්නreq.param('foo') .

විචල්‍යය මාර්ග පරාමිතීන්, විමසුම් නූල හෝ කේතනය කළ ඉල්ලීම් ශරීරය තුළ තිබේද යන්න පරාමිතියේ වටිනාකම ආපසු ලබා දෙනු ඇත.

පැති සටහන- ඔබ ඉල්ලීම් පරාමිති තුනේම ඡේදනය (PHP වලට සමාන $_REQUEST) ලබා ගැනීමට අදහස් කරන්නේ නම්, ඔබට අවශ්‍ය වන්නේ පරාමිතීන් එකට ඒකාබද්ධ කිරීමයි - මෙන්න මම එය රුවල් වල පිහිටුවා ගත් ආකාරයයි . මාර්ගය / මාර්ග පරාමිති වස්තුවට ( req.params) අරා ගුණාංග ඇති බව මතක තබා ගන්න , එබැවින් කාරණා ඇණවුම් කරන්න (මෙය එක්ස්ප්‍රස් 4 හි වෙනස් විය හැකි වුවද )


req.param ('STRING') යනු නිවැරදි පිළිතුරයි. මෙතැනින් බලන්න: stackoverflow.com/questions/17007997/… (පිළිගත් පිළිතුරට පහළින් පිළිතුරු දීමට පහළට අනුචලනය කරන්න )
ජෝශප් ජුන්කේ


7
req.param සී express ්‍රගාමී 4.x වලින් ඉවත් කර ඇත, ඒ වෙනුවට req.params, req.body හෝ ​​req.query භාවිතා කළ යුතුය: expressjs.com/en/4x/api.html#req.param
swang

@swang හරි- මම මේ ගැන මෑතකදී ඩග් විල්සන් සමඟ දෙවරක් පරීක්ෂා කර බැලුවෙමි, සහකාරක req.param()ක්‍රියාකාරිත්වය එක්ස්ප්‍රස් 5 හි සම්පූර්ණයෙන්ම ඉවත් කිරීමට ඉඩ ඇත. මේ පිළිතුර එතෙක්. මධ්යන්ය කාලය තුළ: req.param()එක්ස්ප්රස් <= 3.x / සේල්ස් <= 0.12 සමඟ භාවිතා කිරීම ආරක්ෂිතයි , සහ එක්ස්ප්රස් 4 හි නවතම නිකුතුව සමඟ w / අවලංගු කිරීමේ ලොග් පණිවිඩයක් වුවද. (රුවල් භාවිතා කරන්නන් සඳහා: ක්‍රියාත්මක කිරීම req.param()සේල්ස් v1.0 වන විට හරය කරා ගමන් කරනු ඇති අතර අනාගතයේ දී එය සේල්ස් හි පූර්ණ සහාය ලබා දෙනු ඇත.)
mikermcneil

143

Express.js සඳහා ඔබට අවශ්‍ය වන්නේ req.params:

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

8
Express.js හි GET විචල්‍යයන් ලබා ගැනීමට ඔබට req.query භාවිතා කළ හැකිය.
බෙන් සින්ක්ලෙයාර්

6
Nd ඇන්ඩි req.params වඩා හොඳ නිසා: req.param (නම [, පෙරනිමි]): පරාමි නාමයේ අගය පවතින විට හෝ පෙරනිමියෙන් ලබා දෙන්න. මාර්ග පරාමිතීන් (req.params), උදා: / user /: id පරීක්ෂා කරයි විමසුම් වචන පරාමිති (req.query), උදා :? Id = 12 මුත්රා කේත කරන ලද ශරීර පරාමිතීන් (req.body) පරීක්ෂා කරයි, උදා: id = 12 urlencoded ඉල්ලීම භාවිතා කිරීමට සිරුරු, req.body වස්තුවක් විය යුතුය. _Express.bodyParser මිඩ්ල්වෙයාර් භාවිතා කිරීමෙන් මෙය කළ හැකිය.
Cris-O

Req.query සඳහා req.param චෙක්පත් මා දැන සිටියේ නැත, මෙම සටහනට ස්තූතියි.
බෙන් සින්ක්ලෙයාර්

3
req.param ('paramName') විසින් req.body, req.query, සහ req.params සඳහා පරික්ෂා කරනු ඇත, නමුත් ඔබට සියලු විමසුම් පරාමිතීන් වස්තුවක් ලෙස අවශ්‍ය නම්, ඔබ req.query භාවිතා කළ යුතුය.
mikermcneil

1
ikmikermcneil ඔබ බොහෝ විට req.param () සහ req.params (වස්තුව) මිශ්‍ර කර ඇත. Expressjs docs අනුව req.param () වස්තු තුනේම වටිනාකම සොයයි. expressjs.com/api.html#req.param
බෙන් සින්ක්ලෙයාර්

81

මම අනෙක් පිළිතුරු වලින් ඉගෙන ගත් අතර මගේ වෙබ් අඩවිය පුරා මෙම කේතය භාවිතා කිරීමට තීරණය කළෙමි:

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
විමසුම හුදෙක් නූලක් බැවින් හැඳුනුම්පත සහ විකල්පය නිර්වචනය නොකෙරේ ද? අපට වෙනම පරාමිති දෙක රීජෙක්ස් හෝ ඒ හා සමාන විග්‍රහ කිරීමට සිදුවේ.
ossek

1
@ossek මම හේතුභූත වූ පනත විශ්වාස parseමත req.urlවස්තුවක් බවට පරිවර්තනය කරයි.
වයිට්ෆින්

1
@ossek, ඔහු url.parse සඳහා දෙවන තර්කයක් ලෙස සපයා ඇති අතර, එමඟින් විමසුම් දේපල වස්තුවකට යොමු කරයි (සහ අභ්‍යන්තරව විමසුම් මොඩියුලය භාවිතා කරයි) ඔබට ඒ ගැන වැඩි විස්තර ලේඛනයෙන් සොයාගත හැකිය [මෙහි] ( nodejs.org/docs / latest / api /… )
භාරත්

51
//get query&params in express

//etc. example.com/user/000000?sex=female

app.get('/user/:id', function(req, res) {

  const query = req.query;// query = {sex:"female"}

  const params = req.params; //params = {id:"000000"}

})

48

ඔබ ES6 සහ Express භාවිතා කරන්නේ නම් , මෙම 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

ලබා ගන්න ක්රමය හරහා පරාමිති යැවීමට 2 ආකාරයන් ඇත

ඔබ / වැනි / routename පරාමිතීන් සම්මත එහිදී මෙම MVC ප්රවේශය:: 1 වැනි ක්රමය paramname
මෙම අවස්ථාවේ දී ඔබ කොහේද මම උදාහරණයක් ලෙස, පරාමිතිය අගය පහත දැක්වෙන කෝඩ් යොමු කර ගැනීමට req.params.paramname භාවිතා කළ හැකිය පරමාණුක
සබැඳියක් ලෙස අයිඩී බලාපොරොත්තු විය හැකිය: 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")
})

27

යාවත්කාලීන කිරීම 4 මැයි 2014

පැරණි පිළිතුර මෙහි සංරක්ෂණය කර ඇත: https://gist.github.com/stefek99/b10ed037d2a4a323d638


1) සී express ්‍රගාමී ස්ථාපනය: 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

කුඩා Node.js HTTP සේවාදායකය 9080 වරායේ සවන්දීම, GET හෝ POST දත්ත විග්‍රහ කිරීම සහ ප්‍රතිචාරයේ කොටසක් ලෙස එය සේවාදායකයා වෙත ආපසු යැවීම:

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, සහ "node parse.js" ඇතුළත් කිරීමෙන් එය කොන්සෝලය මත ධාවනය කරන්න.


3
මෙම උදාහරණයේ ඔබට sys අවශ්‍ය නොවේ
danwellman

20

වයිට්කාර්ක් ඊට හොඳ ප්‍රතිචාරයක් දැක්වීය. නමුත් Node.js සහ Express.js හි වර්තමාන අනුවාදයන් සමඟ එයට තවත් එක් පේළියක් අවශ්‍ය වේ. 'අවශ්‍ය 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

එය ඉතා සරල ය:

උදාහරණ URL:

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

මෙය භාවිතා කිරීමෙන් විමසුම් නූලෙහි සියලු අගයන් මුද්‍රණය කළ හැකිය:

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

ප්‍රතිදානය

සියලුම විමසුම් නූල්: {"id": "3", "activatekey": "a 2a $ 08 $ jvGevXUOvYxKsiBt.PpMs.zgzD4C / wwTsvjz fUrqLrgS3zXJVfVRK"}

විශේෂිත මුද්‍රණය කිරීම සඳහා:

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

ප්‍රතිදානය

activatekey: $ 2a $ 08 $ jvGevXUOvYxKsiBt.PpMs.zgzD4C / wwTsvjzfUrqLrgS3zXJVfVRK



13

සී express ්‍රගාමී ^ 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...
})

එපමණක් නොව, ඔබ es6 සින්ටැක්ස් භාවිතා කරන බව උපකල්පනය කරන්න.

පී.ඩී. {id}සඳහා කි්රයා Object destructuring, නව es6 ලක්ෂණය.


මම එක්ස්ප්‍රස් නෝඩ් සමඟ භාවිතා කරමි, එබැවින් මෙය මට හොඳින් ක්‍රියාත්මක විය. ඔබට ස්තුතියි!
user752746

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

ඔබට මෙය භාවිතා කළ හැකිය, නැතහොත් ඉල්ලීම් පරාමිතීන්ගෙන් විශේෂ අංගයක් විග්‍රහ කිරීම සඳහා ඔබට ශරීර විග්‍රහකය උත්සාහ කළ හැකිය.


1
මෙය ප්‍රශ්නයට පිළිතුරු සපයන ආකාරය තවදුරටත් පැහැදිලි කළ හැකිද?
නිකෝ හේස්

මෙය දැනට පවතින පරාමිති ලැයිස්තුවක් විග්‍රහ කරන්නේ කෙසේද?
නිකෝ හේස්

ඔබට බොඩි-පාර්සර් මොඩියුලය node.js වෙතින් භාවිතා කළ හැකිය
මෙහෙඩි අබ්දුල්ලා

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']PHP හි මෙන් ක්‍රියා කරයි .


0

මගේ දෘෂ්ටි කෝණයෙන් මම සිතන්නේ බොහෝ අය විවිධ සංකල්ප දෙකක් මිශ්‍ර කරන බවයි. REST සංවර්ධනය අතරතුර, URL හි තොරතුරු "මාර්ග විචල්යයන්" සහ "ඉල්ලීම් පරාමිතීන්" (විමසුම් පරාමිතීන්) ආකාර දෙකකින් ලබා දීමට මට හුරු විය. RFC යූආර්අයි හි කොටස් මේ ආකාරයෙන් විස්තර කරයි: සබැඳි විස්තරය මෙහි ඇතුළත් කරන්න, එබැවින් ඉල්ලීම් පරාමිතීන් සම්මත කරන්නේ කෙසේදැයි දැන ගැනීමට කතුවරයා කැමති බව මම තේරුම් ගතිමි. මට අවශ්‍ය වන්නේ මාතෘකාව පහසුවෙන් තේරුම් ගැනීමට පමණි, නමුත් විසඳුම මෙහි බොහෝ වාරයක් සඳහන් කර ඇත.

ඔබට URI වෙතින් විමසුම් පරාමිතීන් ලබා ගත හැකිය 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) තවත් ක්‍රමයක් වන්නේ විමසුම් පරාමිතීන් භාවිතා කිරීමයි. එබැවින් url එක "..... \ api \ xyz? id = 1" කොහේද "? id = 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ආරක්ෂිත වසම් හා එස්එස්එල් හරහා සන්නිවේදනය කිරීම සඳහා ඔබට මොඩියුලය භාවිතා කළ හැකි බව මතක තබා ගන්න . එබැවින් මෙම රේඛා දෙක වෙනස් වනු ඇත:

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

-1

ඇයි සේවාදායක කේතය සමඟ මිශ්‍ර නොවන්නේ

උදා. php

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

</script>

-2

මම express@4.16 සමඟ MEANJS 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 සබැඳිය යැයි සිතමු.

එබැවින් සී express ්‍රයෙන් ඔබට භාවිතා කළ හැකිය:

  • 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}) })

-------- URL පරාමිතීන් වෙත ප්‍රවේශ වීම -------
මෙය 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}) })
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.