javascript - 让 AJAX 与 Node.js 配合使用

标签 javascript ajax node.js

我有一个注册页面的 POST 请求。它检查用户名是否已被其他用户使用:

router.post ('/register', function(req, res) {
User.findOne({username: req.body.username}, function(err, existingUser) {
    if(existingUser) {
        req.flash('errors1', req.body.username + ' already exists.');
        return res.redirect('/register');
    }
//some more code down here if the username is unique

这是表单(我正在使用 EJS):

<form method="POST" action="/register">
    <% if (errors1.length > 0) { %>
        <div class='form-group has-error'>
            <label for="username">Stock Ticker</label>
            <input type="text" name="username" class="form-control" id="username"/>
            <span class="help-block"><%= errors1 %></span>
        </div>

基本上,如果输入的用户名不唯一,表单下方会出现一条消息,告诉用户该用户名无法使用。但此消息仅在用户点击“提交”按钮后才会显示。

如何将 AJAX 融入其中?我以前从未真正使用过 AJAX,并且一直在阅读文档并观看教程,但我就是无法理解如何将 AJAX 合并到这段代码中。

最佳答案

您应该创建新的 api 来进行检查,并在输入控件失去焦点时触发此请求,也许代码如下所示:

server.js:

router.post ('/check_username', function(req, res) {
    //CODE:check your username 
})

html:

<div class='form-group has-error'>
        <label for="username">Stock Ticker</label>
        <input type="text" name="username" class="form-control" id="username"/>
        <span class="help-block"><%= errors1 %></span>
</div>

js(Jquery):

$("#username").focusout(function(){
        var value = $("#username").val();
        //CODE:send the request and display result;
        $.post('/check_username',{username:value},function(data){
        //CODE:handle result
        })
    });

关于javascript - 让 AJAX 与 Node.js 配合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317330/

相关文章:

javascript - 在 iPad 上,html 5 视频标签的 src 属性中的 http url 不起作用

javascript - 如何使用 keydown 事件移动列表项

javascript - object.style.zoom 属性在 Firefox 中不起作用

javascript - 如何获取 JSON URL 文件并使其不断更新

javascript - 使用脚本标签内的 php 变量设置 jQuery ajax url 是否合适?

node.js - 如何克隆 Mongoose 模式?

javascript - 禁用 :active pseudo-class on z-index's layers

javascript - 从列表 JQUERY 中获取点击输入的正确名称

javascript - 生成并存储电子(数字)签名

javascript - 等待回调完成对性能有何影响?