我正在建立一个电子商务网站,在这个过程中,我面临一个问题,即如何将用户输入数据从 javascript 发送到后端

Posted

技术标签:

【中文标题】我正在建立一个电子商务网站,在这个过程中,我面临一个问题,即如何将用户输入数据从 javascript 发送到后端【英文标题】:I'm building an E-commerce website, in this process, I'm facing a problem that how to send users input data from javascript to the backend 【发布时间】:2022-01-22 15:07:08 【问题描述】:

我正在建立一个电子商务网站,在这个过程中,我遇到了一个问题,即如何将用户输入数据javascript发送到后端

对于后端,我使用的是 node.js (express)。

如果我得到了这个问题的解决方案,那么我可以将数据存储在数据库中

                .mb-3
                    label.form-label(for='username') User name
                    input#username.form-control(type='text' aria-describedby='emailHelp')
                .mb-3
                    label.form-label(for='Email') Email
                    input#email.form-control(type='Email')
                .mb-3
                    label.form-label(for='mobilenumber') Enter number
                    input#mobilenumber.form-control(type='number')
                .mb-3
                    label.form-label(for='password') Enter New Password
                    input#password.form-control(type='password')
                .mb-3
                    label.form-label(for='confirmpassword') Confirm Password
                    input#confirmpassword.form-control(type='password')
                .form-check.login-checkbox-container
                    input.bg-danger.border-danger#t-and-c-checkbox.form-check-input(type='checkbox' checked)
                    label.form-check-label.m-0(for='exampleCheck1') Agree To Our 
                      a.text-danger Terms And Conditions
                .form-check.login-checkbox-container
                    input.border-danger.form-check-input#upcoming-notification(type='checkbox')
                    label.form-check-label.m-0(for='exampleCheck1') recieve upcomimg offers and events mails
                button.btn.btn-success#new-user-submit-btn(type='button') Submit
                button.btn.btn-outline-primary#signups-login-btn(type='button') Login

此问题的任何解决方案

【问题讨论】:

请提供更多有用的信息。如何将数据发送到后端?后端看起来如何?您面临哪些错误?仅提供您的 html 不足以得到答案。 提交表单到服务器? 【参考方案1】:

使用 Ajax 在 Node 服务器中发送用户输入数据


我给出了将用户输入数据发送到节点服务器的代码示例。 使用 Jquery 和 Mongodb 和 nodejs。 这是一个简单的身份验证登录页面。

客户代码:

 <script>
        function login() 
            var name = $("#name").val();
            var password = $('#password').val();
            if (name !== '' && password !== '') 
                $.ajax(
                    url: "http://localhost:3000/login",
                    type: 'POST',
                    crossDomain: true,
                    dataType: 'json',
                    data: 
                        name: String(name),
                        password: password
                    ,
                    success: function(response) 
                        console.log(response.msg)
                        if (response.msg == 'verified') 
                            window.location.href = response.link;
                         else 
                            alert(response.msg)
                        
                    ,
                    error: function(error) 
                        console.log(error);
                    
                );
             else 
                alert('Please Enter UserName Password')
            
        
    </script>

服务器代码

    var app = require('express')();
var bodyParser = require('body-parser');
var http = require('http').Server(app);
var port = 3000;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded( extended: true ));
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017";

app.get('/', function(req, res) 
    res.sendFile(__dirname + '/index.html');
)

app.post('/login', function(req, res) 
    var data = req.body;
    var name = data.name;
    var password = data.password;
    MongoClient.connect(url, function(err, db) 
        if (err) throw err;
        let dbo = db.db('demo-mrracer');
        var query =  name: name 
        dbo.collection('user_details').find(query).toArray(function(err1, result) 
            if (err1) throw err1;
            if (result.length > 0) 
                var d = result[0].password;
                if (d == password) 
                    console.log('user verified..');
                    db.close();
                 else 
                    db.close();
                    res.send( msg: 'Username or Password incorrect' )

                
             else 
                db.close();
                res.send( msg: 'Please Register..' )
            
        )
    )
)


app.listen(port, function() 
    console.log(`$port Running Successfully..`)
)

就是这样。

【讨论】:

为什么允许所有来源?既然有 fetch 使用 jquery 的目的是什么? ajax 调用只能从 jquery 进行。就是这样。 是的,没错。但是 OP 甚至没有标记 jquery 那么为什么要首先使用它呢? 抱歉什么是 OP 我无法理解。 原始海报。这意味着提出问题的用户。

以上是关于我正在建立一个电子商务网站,在这个过程中,我面临一个问题,即如何将用户输入数据从 javascript 发送到后端的主要内容,如果未能解决你的问题,请参考以下文章

如何建立电子商务网站

截取 iFrame 的屏幕截图

MongoDB电子商务网站的数据建模

如何在 Paypal 电子商务网站中处理多种货币?

如何建立电子商务网站

Paypal响应码——如何正确处理