Простая экспресс-программа для запроса результата

0

У меня есть фрагмент кода Express

Ниже того, что я пытаюсь сделать, это передать имя таблицы keyName, извлекая из запроса

Но я столкнулся с deaslock

Я хотел узнать, следую ли я надлежащим протоколам для ответа JSON

[Часть-оф-Экспресс-Code]

app.get('/RestaurantDesc/:Key',function(request,response,next){

    var keyName=request.query.Key;
    var name_of_restaurants, RestaurantTimings;
    async.series( [
        // Get the first table contents
        function ( callback ) {
            connection.query('SELECT * FROM ',keyName, function(err, rows, fields)
                {
                        console.log('Connection result error '+err);
                        name_of_restaurants = rows;
                        callback();
                });
        },
        // Get the second table contents
        function ( callback ) {
        connection.query('SELECT * FROM RestaurantTimings', function(err, rows, fields)

            {
                    console.log('Connection result error '+err);
                    RestaurantTimings = rows;
                    callback();
            });
        }

   // Send the response
], function ( error, results ) {
    response.json({
        'restaurants' : name_of_restaurants,
        'RestaurantTimings' : RestaurantTimings
    });
} );
} );

Я получаю вывод как Can not GET /RestaurantDesc/

Любые идеи

  • 0
    Вы передаете: введите свой запрос на получение?
  • 0
    Я передаю (ключ, значение) пару как (Key, Aroy) от клиента ..... поэтому я пытаюсь сохранить Aroy в переменной и перейти к запросу на основе значения, сгенерированного ответа json
Теги:
express

2 ответа

0
Лучший ответ

ваш маршрут должен быть пустым, путь, к которому вы можете получить доступ через запрос GET. например: вы должны иметь доступ к нему через

http://example.com/RestaurantDesc/anyKeyHere

и в вашем коде вы

var keyName = request.query.Key

req.query содержит переменные запроса, см. http://expressjs.com/api.html#req.query

Таким образом, ваша переменная keyName не будет содержать anyKeyHere.

req.params.Key будет содержать значение anyKeyHere;

но вам нужно будет передать его по URL-адресу.

если вам нужно передать ключевые данные в запросе, вы можете это сделать.

app.get('/RestaurantDesc',function(request,response,next){
   var keyName=request.query.Key;
 });

и пропустите ключ, подобный этому в вашем URL

http://example.com/RestaurantDesc/?Key=restaurnetkeyHere

Попробуйте пройти руководство в экспресс-узле и понять маршруты и как это работает.

  • 0
    Ваша информация помогла .... я расширил ваше решение .... пожалуйста, посмотрите на эту ссылку ( stackoverflow.com/q/18525144/2582071 ) и верните ваш отзыв, пожалуйста!
1

Если вы получаете "Can not GET /RestaurantDesc/", это потому, что вы не настроили этот маршрут, попробуйте /RestaurantDesc/something. request.query используется для поисковых запросов, то есть вещей, которые появляются после запроса в url. Вместо этого используйте request.param.Key.

Кроме того, для лучших практик вы должны вводить имена ресурсов в нижнем регистре и использовать более короткий req/res вместо запроса/ответа.

  • 0
    req против request чисто мнение , основанное. req что большинство примеров кода использует req , не означает, что он согласуется с другими вашими соглашениями об именах. Я думаю, что «лучшая практика» будет просто соответствовать вашей кодовой базе. В моей последней организации мы предпочитали параметры, которые не были аббревиатурами, в общем, поэтому мы использовали request и response потому что он был для нас непротиворечивым и облегчал не путать их сразу.
  • 0
    В чем основное отличие ч / б request.query и request.param ....... Если Клиент отправляет запрос в виде пары (ключ, значение) на сервер ...... как сервер должен обрабатывать его. ... я должен использовать request.query или request.param
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню