【问题标题】:How to use AJAX function in Total js?Total js中如何使用AJAX功能?
【发布时间】:2019-12-17 15:25:37
【问题描述】:

我有一个用户表单,我正在尝试做一个 POST。带有模式的早期代码可以工作。我现在正在适应 AJAX,但我不知道它为什么不起作用。没有错误。

下面是 users.html 文件中的代码 sn-p

</div>
            <div class="btn" role="group">
                <button type="button" name="submit" id="Submit" class="btn btn-primary" onclick="onSubmit()">Submit</button>
            </div>
            <div class="btn" role="group">
                <input class="btn btn-warning" type="reset" value="Reset">
            </div>
        </form>
        <script type="text/javascript">
            function onSubmit() {
                console.log("Ajax Testing");
                AJAX('POST /users', function (value, err, response) {
                    if (err) { throw err };
                    console.log(value);
                    console.log(response);
                });
            };
        </script>

这是来自 default.js 文件的路由部分

exports.install = function () {
    ROUTE('GET  /', displayHome);
    ROUTE('GET  /{userId}   *userSchema --> @query');
    ROUTE('GET  /homepage', displayHome);
    ROUTE('POST /users      *userSchema --> @insert');

下面是插入操作的架构

schema.setInsert(function ($) {
        var userDB = DATABASE('users');
        userObj = {
            name: $.controller.body.name,
            age: $.controller.body.age,
            height: $.controller.body.height,
            email: $.controller.body.email,
            gender: $.controller.body.gender,
            cities: $.controller.body.cities,
            landline: $.controller.body.telephone,
            about: $.controller.body.aboutMe
        };
        userDB.insertOne(userObj, function (err, result) {
            if (err) throw err;
            console.log("Created New user using Schema Definition" + result);
            $.controller.view('homepage');
        }.bind($.controller));
    });

你能告诉我错误是什么吗?

【问题讨论】:

    标签: total.js


    【解决方案1】:

    您忘记发送数据:

    AJAX('POST /users/', YOUR_DATA, function (value) {
        console.log(value);
    });
    

    顺便说一句:代码在您的架构中不好。您需要使用架构中定义的字段,然后一切都会变得简单得多:

    schema.setInsert(function ($) {
        DB('users').insertOne($.clean(), $.callback);
    });
    

    从例子中学习:

    【讨论】:

    • 非常感谢彼得。我没有从我的架构中粘贴我的整个代码。希望以下是正确的。感谢任何反馈。 NEWSCHEMA('userSchema', function (schema) { schema.define('name', 'String(50)', true); schema.define('age', 'Number'); schema.define('height', 'Number'); schema.define('email', 'Email', true); schema.define('gender', 'String'); schema.define('cities', 'Array'); schema.define( 'telephone', 'String'); schema.define('aboutMe', 'String(500)');
    • schema.setInsert(function ($) { var userDB = DATABASE('users'); userObj = { name: $.controller.body.name, age: $.controller.body.age,身高:$.controller.body.height,电子邮件:$.controller.body.email,性别:$.controller.body.gender,城市:$.controller.body.cities,固定电话:$.controller.body.telephone,关于:$.controller.body.aboutMe };
    • userDB.insertOne(userObj, function (err, result) { if (err) throw err; console.log("Created New user using Schema Definition" + result); $.success(); $.controller.view('homepage'); }.bind($.controller)); });
    猜你喜欢
    • 2023-01-11
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 2022-09-23
    • 2023-03-27
    相关资源
    最近更新 更多