Почтовый звонок от JS не отправляет данные на сервер - PullRequest
0 голосов
/ 25 октября 2019

Попытка отправить данные для входа из моего внешнего интерфейса в mongodb.

Таким образом, мой js-файл берет значения id и pass из файла pug и выполняет пост-вызов, который отправляет id входа и pass.

Затем маршрут / постлист принимает значение и отображает его.

Ошибка, которую я получаю, состоит в том, что никакие значения не передаются в вызов ajax, даже если значения id и passкогда я делаю console.log

Это мой файл мопса

script(type='text/javascript' src="http://code.jquery.com/jquery-latest.js")
script( type= 'text/javascript',src='/javascripts/script.js')


form( id='formSignIn')
    div.form-group
      label(for='name') Id:
      input#name.form-control(type='text', placeholder='id' name='name')
    div.form-group
      label(for='pw') Password:
      input#password.form-control(type='password', name='password')
      button.btn.btn-primary(type='submit', id='submit') Sign In

Это мой код js

$(document).ready(function(){
console.log("hi");

    var name,password;
    $("#submit").click(function(){
        id= $("#name").val();
        // console.log("/////////",name);
        pass=$("#password").val();
        console.log("$$$$$$$$$$$$$", id, pass)
        $.post("/signup", {name: id, password: pass} ,function(data){
         alert( "Data Loaded: " + data );
        }).fail(function(){
      console.log("error");

        // console.log("@@@@@@@@@@@@@@@@@");
        localStorage.setItem('user',id);
        });
})})

Это мой код в роутере / индексе.js (используя экспресс для этого проекта)

router.post('/login', function(req,res){
console.log("fhfdghd")
 var db = req.db;
    // Set our collection
   var userCollection = db.collection('user');
    // Get our form values. These rely on the "name" attributes
    console.log("BODY", req.body)
    var id = req.body.name;
    var password = req.body.password;
    var query = {"id": id, "password": password}
     db.collection('user').findOne(query, function(err, user){
      if(err) {throw new Error(err);}
      else if(!user){ 
        console.log('Not found');
    }
      else{ 

        sses=req.session;
        sses.user=req.body.name;

        console.log('Found!');
        res.end('done');
        res.redirect('/');
        }
  })
});

1 Ответ

0 голосов
/ 25 октября 2019

В этой ссылке Вы не используете body-parser. Для nodejs требуется body parser для получения данных тела на бэкэнде, поэтому вы должны установить и использовать его в своем app.js как этот

Step1:

npm i body-parser

Step2: Требуется в app.js

var bodyParser = require('body-parser');

Step3: Используйте его какthis

app.use( bodyParser.json() );       // to support JSON-encoded bodies
// app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
//   extended: true
// })); 

После этого вы должны получить свои данные.

...