Раскрывающийся список в Node.js, не предоставляющий данные JSON - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь, чтобы раскрывающийся список отображал информацию, содержащуюся в базе данных SQLite3. Есть три имени входа: Филипп, Джон и Кэрол с соответствующими полями и данными для каждого имени, которое является профессией каждого человека изображение jpg.

Я пытаюсь сделать это с помощью node.js и jquery. Пожалуйста, смотрите код ниже. Я получаю сообщение об ошибке, например ниже:

GET http://localhost:5000/nameJohn 404 (не найдено)

Я предполагаю, что это может быть связано с запросом ajax get call ниже с идентификатором имени из базы данных: $ ( '# pet_owners'). (на 'изменить', функция () { $ .Get ( 'имя' + this.value, функция (данные) {

    <HTML>
    Name:
    <select id="pet_owners">
      <option value="Philip">Philip</option>
      <option value="John">John</option>
      <option value="Carol">Carol</option>
      </select> 
      <select id="info">
      </select>
    </HTML> 
`````````````````````````````````````````````````````````````````````````````
    <SCRIPT>

    <JQUERY>

    $('#pet_owners').on('change',function(){
    $.get('name'+this.value,function(data){

     for(var j = 0; j < length; j++)
     {

       $('#info').contents().remove();
       var newOption = $('<option/>');
       newOption.attr('text', data[j].text);
       newOption.attr('value', data[j].value);
       $('#info').append(newOption);
         }
      });
    });

    </SCRIPT>
`````````````````````````````````````````````````````````````````````````````
    <JAVASCRIPT MAIN FILE>


    const express = require('express');
    const app = express();
    app.use(express.static('static_files'));
    const sqlite3 = require('sqlite3');
    const db = new sqlite3.Database('pets.db');

    app.get('/users/:userid', (req, res) => {
    const nameToLookup = req.params.userid; // matches ':userid' above
    db.all(
      //sql query:
      'SELECT * FROM users_to_pets WHERE name=$name',
      //parameters to pass into SQL query:
      {
        $name: nameToLookup
      },

      res.json(nameToLookup));
     });

     app.listen(5000, () => {
     console.log('Server started at http://localhost:5000/');
     });

`````````````````````````````````````````````````````````````````````````````
    <SQLITE3 DATABASE CREATION SCRIPT>

    const sqlite3 = require('sqlite3');
    const db = new sqlite3.Database('pets.db');

    // run each database statement *serially* one after another
    // (if you don't do this, then all statements will run in parallel,
    //  which we don't want)
    db.serialize(() => {
    // create a new database table:
    //db.run("CREATE TABLE users_to_pets (name VARCHAR(255), job 
     VARCHAR(255), pet VARCHAR(255))");
     db.run("CREATE TABLE users_to_pets (name TEXT, job TEXT, pet TEXT)");


   // insert 3 rows of data:

   db.run("INSERT INTO users_to_pets (name, job, pet) VALUES ('Philip', 
  'professor', 'cat.jpg')");
   db.run("INSERT INTO users_to_pets (name, job, pet) VALUES ('John', 
  'student', 'dog.jpg')");
   db.run("INSERT INTO users_to_pets (name, job, pet) VALUES ('Carol', 
   'engineer', 'bear.jpg')");

   //db.run("INSERT INTO users_to_pets VALUES ('Philip', 'professor', 
   'cat.jpg')");
   //db.run("INSERT INTO users_to_pets VALUES ('John', 'student', 
   'dog.jpg')");
   //db.run("INSERT INTO users_to_pets VALUES ('Carol', 'engineer', 
    'bear.jpg')");

    console.log('successfully created the users_to_pets table in pets.db');

   // print them out to confirm their contents:
    db.each("SELECT name, job, pet FROM users_to_pets", (err, row) => {
      console.log(row.name + ": " + row.job + ' - ' + row.pet);
    });
   });

   db.close();

1 Ответ

0 голосов
/ 12 июня 2019

Попробуйте localhost:5000/users/nameJohn вместо localhost:5000/nameJohn.Это должно исправить ошибку 404.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...